В статье расказывается об установке программы Letsenrypt и получения сертификата на домен и поддомены.
Сертификат выдаётся на три месяца, поэтому во второй части будет рассказано про обновление сертификата.
Часть 1. ПОлучение сертификата
На момент осени 2024 года, ядро должно быть собрано с options COMPAT_FREEBSD11. Это надо, чтобы собрался rust. Кстати, rust можно собирать без опций.
Сама программа находится в /usr/ports/security/py-certbot. Собирается без проблем. Ничего в /etc/rc.conf прописывать не надо.
Создадим сертификат для домен fbsd.site и всех доменов третьего уровня:
certbot --manual --agree-tos --email
Здесь будьте внимательны, так как при копировании и вставке этой строки кавычки изменяются на другие. проверьте и замените на кавычку латинской клавиатуры где клавиша "э".
Программа выдаст строку вида:
Please deploy a DNS TXT record under the name:
_acme-challenge.fbsd.site.
with the following value:
wKN3HnU2wmgLILV54jOsFjXcl_KeEVdr23RQvH9m65Y
В файл зоны сайта вставьте строку_acme-challenge.fbsd.site. IN TXT wKN3HnU2wmgLILV54jOsFjXcl_KeEVdr23RQvH9m65Y
Не забудьте обновить счетчик зоны и перезапустить bind.
Проверить обновилась ли зона можно командой nslookup -q=TXT _acme-challenge.fbsd.site
Если всё получилось, то в выводе будет что-то типаServer: 1.1.1.1
Address: 1.1.1.1#53
Non-authoritative answer:
_acme-challenge.fbsd.site text = "wKN3HnU2wmgLILV54jOsFjXcl_KeEVdr23RQvH9m65Y"
Нажмите enter и программа выдаст вам сертификат, ключ и цепочку доверия в каталог /usr/local/etc/letsencrypt/archive/fbsd.site/..
.
Все файлы будут с номерами (cert1.pem, chain1.pem...) С каждым обновлением сертификата номера файлов будут увеличиваться (cert2.pem, chain2.pem...) Для того, чтобы каждый раз не редактировать конфиги сервисов, которые испольют этот сертификат, в эти конфиги можно прописать ссылки на эти файлы. Ссылки находятся в каталоге /usr/local/etc/letsencrypt/live/fbsd.site/...
и всегда ведут на свежие файлы каталога archive.
Часть 2. Обновление сертификата
Через два месяца на почту которую вы указали при получении сертификата придёт письмо, что пришла пора обновить сертификат.
Создайте папки .well-known/acme-challenge/ в корневом каталоге сайта.
Запустите # certbot certonly --manual -d 'fbsd.site,*.fbsd.site'
И выполните два действия:
Please deploy a DNS TXT record under the name:
_acme-challenge.fbsd.site.
with the following value:
o1E44OKBDCkjjhYaE5hJLcouV8jGP2lDvdnXofr71IA
В файл зоны вашего сайта (это вы делали при получении сертификата)
Затем надо будет выполнить:
Create a file containing just this data:
ewwvXK8SoNoeMpqwg-6iLMfG0iiO2VwxhEGQBxyQNd8.ajzuKlmsy6yCkZTuRllEN1zGK7EfCc0ZGqQAowH2OGY
And make it available on your web server at this URL:
http://fbsd.site/.well-known/acme-challenge/ewwvXK8SoNoeMpqwg-6iLMfG0iiO2VwxhEGQBxyQNd8
В файл, находящийся по адресу http://fbsd.site/.well-known/acme-challenge/ewwvXK8SoNoeMpqwg-6iLMfG0iiO2VwxhEGQBxyQNd8 надо вставить строку ewwvXK8SoNoeMpqwg-6iLMfG0iiO2VwxhEGQBxyQNd8.ajzuKlmsy6yCkZTuRllEN1zGK7EfCc0ZGqQAowH2OGY
Обратите внимание - доступ к файл нужен по 80 порту.