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

Подстановочный сертификат Apache с субдоменом виртуального хоста

Я застревал, пытаясь заставить мой сайт работать с 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 в качестве альтернативного имени (или как там было)