Чтобы обеспечить правильный TLS для ваших служб, вам понадобится сертификат, подписанный доверенным центром сертификации (CA). Самый простой вариант на данный момент - использовать клиент Let's Encrypt, например acme-client. ==== Настройка ==== Вам нужно будет настроить httpd-сервер для работы acme-клиента. Рекомендуется использовать openhttpd, нажмите [[openbsd:www:openhttpd|здесь]], чтобы узнать, как настроить этот сервер. Сначала скопируйте шаблон /etc/examples/acme-client.conf: $ doas cp /etc/examples/acme-client.conf /etc/acme-client.conf authority letsencrypt { api url "https://acme-v02.api.letsencrypt.org/directory" account key "/etc/acme/letsencrypt-privkey.pem" } authority letsencrypt-staging { api url "https://acme-staging.api.letsencrypt.org/directory" account key "/etc/acme/letsencrypt-staging-privkey.pem" } domain example.com { alternative names { secure.example.com } domain key "/etc/ssl/private/example.com.key" domain full chain certificate "/etc/ssl/example.com.fullchain.pem" sign with letsencrypt } Замените example.com на ваш домен. Если вы не использовали поддомены раньше: alternative names { } - создаст проблемы. По этому, если у вас нет поддоменов, я рекомендую закомментировать эту строку следующим образом: # alternative names { secure.example.com } Теперь запустите клиент: $ doas acme-client -Fv example.com ==== Исправление проблем ==== Если вы столкнулись с ошибками, убедитесь, что: * [[openbsd:nsd|DNS]] настроен правильно. * [[openbsd:www:openhttpd|Веб-сервер]] настроен правильно. Для работы acme-клиента у вас должен быть веб-сервер. * У вас есть соответствующие права доступа к папкам в /var/www/. Пример вывода будет, $ ls -l /var | grep www drwxr-xr-x 11 root daemon 512 Mar 28 05:28 www $ ls -l /var/www total 36 drwxr-xr-x 2 root daemon 512 Mar 28 22:16 acme drwxr-xr-x 2 root daemon 512 Mar 14 06:12 bin drwx-----T 2 www daemon 512 Oct 12 12:34 cache drwxr-xr-x 2 root daemon 512 Mar 14 06:12 cgi-bin drwxr-xr-x 2 root daemon 512 Mar 14 06:03 conf drwxr-xr-x 3 root daemon 512 Oct 12 12:34 htdocs drwxr-x--- 2 root www 512 Mar 28 05:28 letsencrypt drwxr-xr-x 2 root daemon 512 Mar 29 00:00 logs drwxr-xr-x 2 root daemon 512 Oct 12 12:34 run * Ваш брандмауэр не настроен на блокировку процесса проверки сертификации Let's Encrypt. Обычно он запускает несколько серверов для подключения к порту 80 на вашем сервере. ==== Правильная работа ==== В случае успеха вы увидите: * Текстовый файл ASCII с суффиксом .key с вашим именем хоста в /etc/ssl/private. Пример: $ doas ls -l /etc/ssl/private -r-------- 1 root wheel 3272 Mar 28 22:16 example.com.key * Сертификат PEM в /etc/ssl. Пример: $ ls -l /etc/ssl/*.pem -r--r--r-- 1 root wheel 3937 Mar 28 22:16 example.com.fullchain.pem Вывод работы клиента будет иметь следующий вид. Например, для example.com: acme-client: /etc/ssl/private/example.com.key: generated RSA domain key acme-client: /etc/acme/letsencrypt-privkey.pem: generated RSA account key acme-client: https://acme-v02.api.letsencrypt.org/directory: directories acme-client: acme-v02.api.letsencrypt.org: DNS: 172.65.32.248 acme-client: 172.65.32.248: tls_close: EOF without close notify acme-client: 172.65.32.248: tls_close: EOF without close notify acme-client: dochngreq: https://acme-v02.api.letsencrypt.org/acme/authz-v3/3674632835 acme-client: 172.65.32.248: tls_close: EOF without close notify acme-client: challenge, token: mylkLrPXTvdyiTbDDybKy7M-0JyqiBr0nOg8UXnJ0uDL, uri: https://acme-v02.api.letsencrypt.org/acme/chall-v3/3674632835/-1tUXQ, status: 0 acme-client: /var/www/acme/mylkLrPXTvdyiTbDDybKy7M-0JyqiBr0nOg8UXnJ0uDL: created acme-client: https://acme-v02.api.letsencrypt.org/acme/chall-v3/3674632835/-1tUXQ: challenge acme-client: 172.65.32.248: tls_close: EOF without close notify acme-client: 172.65.32.248: tls_close: EOF without close notify acme-client: order.status 0 acme-client: dochngreq: https://acme-v02.api.letsencrypt.org/acme/authz-v3/3674632835 acme-client: 172.65.32.248: tls_close: EOF without close notify acme-client: challenge, token: mylkLrPXTvdyiTbDDybKy7M-0JyqiBr0nOg8UXnJ0uDL, uri: https://acme-v02.api.letsencrypt.org/acme/chall-v3/3674632835/-1tUXQ, status: 2 acme-client: 172.65.32.248: tls_close: EOF without close notify acme-client: order.status 1 acme-client: https://acme-v02.api.letsencrypt.org/acme/finalize/81817869/2815341474: certificate acme-client: 172.65.32.248: tls_close: EOF without close notify acme-client: 172.65.32.248: tls_close: EOF without close notify acme-client: order.status 3 acme-client: https://acme-v02.api.letsencrypt.org/acme/cert/vxsJMODZOeZxwiuyq9Bz6jqgoRRRUak8ZQ3ob: certificate acme-client: 172.65.32.248: tls_close: EOF without close notify acme-client: /etc/ssl/example.com.fullchain.pem: created