Всем доброго дня,
Я полностью застрял. Не знаю, как следовать, и что делаю больше не так. Надеюсь, вы могли бы мне помочь с этим, так как я много читал, чтобы решить эту проблему, но безуспешно ...
Я:
Я купил РАСШИРЕННЫЙ сертификат на GoDaddy, поэтому я могу видеть «зеленый значок» в строке URL.
Теперь я загрузил сертификат с GoDaddy, и внутри архива ZIP есть соответствующий сертификат и пакет G2 + G1 + ROOT. Итак 2 файла внутри.
Поместил их в папку и правильно указал внутри 443 VHOST, как вы увидите дальше, но каждый тест SSL, который я выполняю в Интернете (SSLLabs, DigiCert ...), просто терпит неудачу в процессе цепочки.
Сайт: cliente.merchbanc.es
https://www.ssllabs.com/ssltest/analyze.html?d=cliente.merchbanc.es&hideResults=on
https://www.sslshopper.com/ssl-checker.html#hostname=cliente.merchbanc.es
Не знаю, что я делаю не так ... Я оставил HTTPD.CONF подготовленным, как он есть (конечно, с правильными и необходимыми модулями без комментариев), но без чего-либо, связанного с VHOSTS и SSL. А затем, в дополнительный файл конфигурации VHOST, я добавил все элементы VHOST + SSL (поэтому я не использую файл конфигурации SSL. Он прокомментирован. Все находится в файле конфигурации VHOSTS).
Выглядит это так:
##################################################################################################################
# VHOSTS HTTP
# redirect all HTTP to HTTPS (optional)
<VirtualHost *:80>
ServerAlias *
RewriteEngine On
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [redirect=301]
</VirtualHost>
##################################################################################################################
# VHOSTS HTTPS
Listen 443
# modern configuration, tweak to your needs
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLProxyProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256
SSLProxyCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256
SSLHonorCipherOrder on
SSLCompression off
SSLSessionTickets off
SSLPassPhraseDialog builtin
SSLSessionCache "shmcb:c:/lala/lele/ssl_scache(512000)"
SSLSessionCacheTimeout 300
# OCSP Stapling, only in httpd 2.3.3 and later
SSLUseStapling on
SSLStaplingResponderTimeout 5
SSLStaplingReturnResponderErrors off
SSLStaplingCache "shmcb:c:/lala/lele/ocsp(128000)"
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile "blah/blahblah/cliente.merchbanc.es/123412341234.crt"
SSLCertificateKeyFile "blah/blahblah/cliente.merchbanc.es/123412341324.key"
#SSLCertificateChainFile "blah/blahblah/cliente.merchbanc.es/gd_bundle-g2-g1.crt"
SSLCACertificatePath "blah/blahblah/cliente.merchbanc.es/GoDaddy_G2"
# Uncomment the following directive when using client certificate authentication
#SSLCACertificateFile /path/to/ca_certs_for_client_authentication
# HSTS (mod_headers is required) (15768000 seconds = 6 months)
Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
...
... follows with the ProxyPassing part, but not the case now.
...
</VirtualHost>
Следуя инструкциям по установке GoDaddy, я изменил SSLCertificateChainFile директива к SSLCACertificatePath директиву, так как я использую Apache в версии 2.4.23. Но это ничего не решает.
После этого я решил скачать ВСЕ сертификаты G2 отсюда: https://certs.godaddy.com/repository
и поместите их все в папку, указанную в пути SSLCACertificatePath: «blah / blahblah / cliente.merchbanc.es / GoDaddy_G2». Но тоже не работает.
И, наконец, поскольку я нахожусь в Windows, я решил перейти к сертификату, после сертификата, дважды щелкнуть em и установить на сервере, теперь они находятся внутри «Свойства обозревателя> Содержимое> Сертификаты», все выкладываются на различные существующие вкладки. И, как правило, не меняет вообще.
Каждый раз, конечно, перезагружая Apache и даже после установки сертификатов в Windows, перезагружая и сам сервер.
И что теперь? Надеюсь, ты поможешь мне, пожалуйста.
Спасибо и добрые пожелания.
Отметка.
Вам необходимо раскомментировать строку для файла цепочки сертификатов.
#SSLCertificateChainFile "blah/blahblah/cliente.merchbanc.es/gd_bundle-g2-g1.crt"
Должно быть:
SSLCertificateChainFile "blah/blahblah/cliente.merchbanc.es/gd_bundle-g2-g1.crt"
Спасибо всем за вашу помощь. Вся информация, которую вы мне предоставили, абсолютно ценна и позволила мне настроить мой файл CONF должным образом. В совершенстве.
Сказав это, я нашел свою конкретную проблему и ее решение.
Мой Apache находится за WAF (брандмауэр веб-приложений). На нем оборвалась цепь. Таким образом, промежуточные центры сертификации не обслуживаются первичным сертификатом. Затем решено: все на месте!
Что за головная боль, мальчик ...
С уважением всем!
Либо инструкции (которые вы не указали) искажены, либо вы неправильно их прочитали.
Изменение в версии 2.4.8 заключается в том, что вы можете и должны поместить свои сертификаты цепочки в SSLCertificateFile
вместо того SSLCertificateChainFile
. Все версии будут использовать сертификаты в SSLCACertificate{File,Path}
чтобы завершить вашу цепочку, если не указано в SSLCertificate{Chain,}File
, но SSLCA*
сертификаты ТАКЖЕ будут применяться к аутентификации клиента, если она включена, что может быть или нежелательно.
Но использовать SSLCACertificatePath
(не ...File
) каждый сертификат должен быть в отдельном файле, а каждый файл должен быть назван (или связанный, что считается именем) используя хеш его предмета; в Unix обычно (но не обязательно) использовать символические ссылки.
В системах Unix с установленным OpenSSL в соответствии с соглашением о восходящем потоке (не все делают) есть сценарий c_rehash
где-нибудь (хотя, возможно, и не в вашем обычном PATH), где это делается; в таком случае должна быть справочная страница для него (иногда в специальном разделе, например, 1ssl) который также есть в сети. OpenSSL 1.1.0 (только) имеет эквивалентную функцию rehash
в исполняемом файле командной строки openssl
в некоторых системах. Поскольку у вас их, вероятно, нет, вы можете вручную запустить openssl x509 -hash
(или эквивалент, но более точный -subject_hash
) в каждом файле сертификата и используйте эти плюсы .0
переименовать или скопировать файл (ы). Но SSLCACertificateFile
(не ...Path
) или SSLCertificate{Chain,}File
проще.
(добавлено) В частности, для использования SSLCACertificateFile
вы просто объединяете все необходимые сертификаты CA и, возможно, ненужные, в один файл. Поскольку данные формата PEM по дизайну все печатаются / отображаются, вы можете сделать это, вырезав и вставив в текстовый редактор, такой как Блокнот, в дополнение к определенным инструментам, таким как cat
в Unix или copy a+b+c
в Windows или >>outfile
добавить в любой.
PS: Apache не использует хранилище сертификатов Windows, поэтому установка в хранилище сертификатов Windows абсолютно не влияет на него.
PPS: если у вас нет командной строки OpenSSL в Windows, есть хороший готовый пакет по адресу http://www.slproweb.com/products/Win32OpenSSL.html