Supondo que você queira hospedar um site de páginas estáticas ou seu blog gerado com Hugo no bozotic, mas precisa de um certificado para HTTPS, pois HTTP sem criptografia está praticamente morto e enterrado, vamos aqui um tutorial rápido de como fazer isso no NetBSD.

Primeiro instale o acmesh com pkgin: pkgin install acmesh

Após isso, o comando acme.sh está disponível para uso. Faça os comando a seguir como usuário root (su root).

Se cadastre no Let’s Encrypt utilizando o cliente, apenas um email é necessário:

NBSDCore# acme.sh --register-account -m xxx@babadibabadum.com
[Fri Jun 28 04:16:36 UTC 2024] No EAB credentials found for ZeroSSL, let's get one
[Fri Jun 28 04:16:37 UTC 2024] Registering account: https://acme.zerossl.com/v2/DV90
[Fri Jun 28 04:16:39 UTC 2024] Registered
[Fri Jun 28 04:16:39 UTC 2024] ACCOUNT_THUMBPRINT='alsdjfakljsflçkjklçasjdflkjal'

Feito isso, garanta que seu servidor web esteja sendo executado e que a pasta onde os arquivos lidos por eles estão tenha permissão de gravação. No NetBSD essa pasta é /var/www por padrão. Esse é passo é importante, pois o protocolo do acme determina salvar um arquivo temporário no seu servidor que é lido pela autoridade certificadora e assim, confirmando que você realmente é o dono do dominio.

Caso seu servidor web seja o bozotic, basta executa-lo:

/usr/libexec/httpd -b -H -X /var/www

Então execute o acme.sh, alterando a linha de comando para seu dominio e a pasta de arquivos do seu servidor web:

NBSDCore# acme.sh --issue -d sample.com -w /var/www
[Fri Jun 28 18:34:49 UTC 2024] Using CA: https://acme.zerossl.com/v2/DV90
[Fri Jun 28 18:34:49 UTC 2024] Single domain='sample.com'
[Fri Jun 28 18:34:49 UTC 2024] Getting domain auth token for each domain
[Fri Jun 28 18:34:52 UTC 2024] Getting webroot for domain='sample.com'
[Fri Jun 28 18:34:52 UTC 2024] Verifying: sample.com
[Fri Jun 28 18:34:53 UTC 2024] Processing, The CA is processing your order, please just wait. (1/30)
[Fri Jun 28 18:34:57 UTC 2024] Success
[Fri Jun 28 18:34:57 UTC 2024] Verify finished, start to sign.
[Fri Jun 28 18:34:57 UTC 2024] Lets finalize the order.
[Fri Jun 28 18:34:57 UTC 2024] Le_OrderFinalize='https://acme.zerossl.com/v2/DV90/order/jdddf4S08Mc5-O9LFqIjCo0g/finalize'
[Fri Jun 28 18:34:58 UTC 2024] Order status is processing, lets sleep and retry.
[Fri Jun 28 18:34:58 UTC 2024] Retry after: 15
[Fri Jun 28 18:35:14 UTC 2024] Polling order status: https://acme.zerossl.com/v2/DV90/order/jdddf4S08Mc5-O9LFqIjCo0g
[Fri Jun 28 18:35:15 UTC 2024] Downloading cert.
[Fri Jun 28 18:35:15 UTC 2024] Le_LinkCert='https://acme.zerossl.com/v2/DV90/cert/-IjHlkji4IK5Fa60u1Z77FlqghbA'
[Fri Jun 28 18:35:16 UTC 2024] Cert success.
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
[Fri Jun 28 18:35:16 UTC 2024] Your cert is in: /root/.acme.sh/sample.com_ecc/sample.com.cer
[Fri Jun 28 18:35:16 UTC 2024] Your cert key is in: /root/.acme.sh/sample.com_ecc/sample.com.key
[Fri Jun 28 18:35:16 UTC 2024] The intermediate CA cert is in: /root/.acme.sh/sample.com_ecc/ca.cer
[Fri Jun 28 18:35:16 UTC 2024] And the full chain certs is there: /root/.acme.sh/sample.com_ecc/fullchain.cer

Agora crie um trabalho no cron para agendar a renovação automática periódica do certificado:

NBSDCore# acme.sh --install-cronjob

E com isso está concluído. O certificado está gerado e salvo em /root/.acme.sh/sample.com_ecc/, onde “sample.com” é o seu domínio.