Я застревал, пытаясь заставить мой сайт работать с SSL и субдоменом в течение нескольких дней. Бесконечно гуглил безрезультатно.
У меня есть настройка веб-сервера на экземпляре AWS EC2 под управлением amazon Linux 2 с apache (httpd).
В настоящее время на моем сервере есть подстановочный сертификат letsencrypt.
Включен файл виртуального хоста ниже (/ etc / httpd / sites-enabled):
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com
ErrorLog /var/www/example.com/error.log
CustomLog /var/www/example.com/requests.log combined
Redirect permanent / https://example.com/
</VirtualHost>
<VirtualHost *:80>
ServerName subdomain.example.com
DocumentRoot /var/www/subdomain.example.com
ErrorLog /var/www/subdomain.example.com/error.log
CustomLog /var/www/subdomain.example.com/requests.log combined
Redirect permanent / https://subdomain.example.com/
</VirtualHost>
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com
ErrorLog /var/www/example.com/error.log
CustomLog /var/www/example.com/requests.log combined
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
</VirtualHost>
<VirtualHost *:443>
ServerName subdomain.example.com
DocumentRoot /var/www/subdomain.example.com
ErrorLog /var/www/subdomain.example.com/error.log
CustomLog /var/www/subdomain.example.com/requests.log combined
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
</VirtualHost>
Если я пойду в https://example.com Я получаю ошибку сертификата
Но если я пойду в https://subdomain.example.com он отлично работает, показывая правильный сертификат letsencrypt.
Я не понимаю, почему сертификат не работает как для домена, так и для поддомена.
Может ли кто-нибудь помочь мне понять, в чем может быть проблема?
Спасибо.
имел файл сертификата по умолчанию, перекрывающий мой собственный из-за конфигурации в файле ssl.conf (/etc/httpd/conf.d/)
Заменил эти 2 строки моими собственными файлами сертификатов: SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
Все работает сейчас. Спасибо, парни.
Подстановочные сертификаты работают только на одном уровне доменов. Если у вас есть host1.domain.tld
и host2.domain.tld
сертификат для *.domain.tld
буду работать. Но тот же сертификат не подойдет для host2.domain.domain.tld
ни для domain.tld
хосты. для первого хоста вам нужен сертификат вроде *.domain.domain.tld
на секунду *.tld
Что вы можете сделать, так это использовать subdomain.domain.tld
(на самом деле это хост, а не домен) как CN в сертификате и domain.tld
в качестве альтернативного имени (или как там было)