Назад | Перейти на главную страницу

certbot-не удается получить сертификат SSL для mail.domain.com

Я хочу установить сертификат шифрования на мой сервер для domain.com, www.domain.com и mail.domain.com. поэтому я создал следующие domain-site.conf файл для виртуальных хостов:

<VirtualHost *:80>
ServerAdmin admin@domain.com
DocumentRoot "/home"
ServerName domain.com
ServerAlias www.domain.com
ErrorLog "/var/log/httpd/domain.error_log"
CustomLog "/var/log/httpd/domain.access_log" common
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.domain.com [OR]
RewriteCond %{SERVER_NAME} =domain.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

<VirtualHost *:80>
ServerAdmin admin@domain.com
DocumentRoot "/home"
ServerName mail.domain.com
ErrorLog "/var/log/httpd/mail.domain.error_log"
CustomLog "/var/log/httpd/mail.domain.access_log" common
</VirtualHost>

а потом, когда я бегу sudo certbot --apache и нажмите Enter, чтобы установить сертификат для всех трех имен, он не может установить сертификат для mail.domain.com и дает следующий результат. как решить вопрос?

You have an existing certificate that contains a portion of the domains you
requested (ref: /etc/letsencrypt/renewal/domain.com.conf)

It contains these names: domain.com, www.domain.com

You requested these names for the new certificate: domain.com, mail.domain.com,
www.domain.com.

Do you want to expand and replace this existing certificate with the new
certificate?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(E)xpand/(C)ancel: e
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for mail.domain.com
Waiting for verification...
Challenge failed for domain mail.domain.com
http-01 challenge for mail.domain.com
Cleaning up challenges
Some challenges have failed.

IMPORTANT NOTES:
- The following errors were reported by the server:

Domain: mail.domain.com
Type:   unauthorized
Detail: Invalid response from
http://mail.domain.com/.well-known/acme-challenge/9heljxXRzeVUNLhilu3-Fr3fZ6YeCaPUQpna01etyoU
[ip]: "<html>\r\n<head><title>404 Not
Found</title></head>\r\n<body>\r\n<center><h1>404 Not
Found</h1></center>\r\n<hr><center>nginx/1.18.0 (Ub"

To fix these errors, please make sure that your domain name was
entered correctly and the DNS A/AAAA record(s) for that domain
contain(s) the right IP address.

Эта ошибка означает, что для файла certbot существует HTTP 404, который он ожидает увидеть в mail.domain.com/.well-known/acme-challenge/9heljxXRzeVUNLhilu3-Fr3fZ6YeCaPUQpna01etyoU

Вы видите этот файл в /home/.well-known/acme-challenge/9heljxXRzeVUNLhilu3-Fr3fZ6YeCaPUQpna01etyoU?

Можете ли вы написать туда свой собственный файл, чтобы проверить, что он обслуживается?

echo wat > /home/.well-known/acme-challenge/wat

Тогда вы сможете скрутить его с помощью:

curl mail.domain.com/.well-known/acme-challenge/wat

При условии mail.domain.com имеет тот же docroot, что и domain.com и www.domain.com вы также должны уметь curl domain.com/.well-known/acme-challenge/wat и curl www.domain.com/.well-known/acme-challenge/wat

Если это не сработает, значит, что-то не так с вашей конфигурацией Apache или, возможно, с правами собственности / разрешениями /home, /home/.well-known или /home/.well-known/acme-challenge

поэтому проблема была связана с конфигурациями зоны пересылки DNS. Я определил mail IN A 192.168.0.60 в передней зоне и 60 IN PTR mail.domain.com в обратной зоне. Я изменил запись в передней зоне на mail IN A <server_ip> и проблема исчезла.