SSL: ПРОБЛЕМЫ ЦЕПИ! >> GoDaddy + Apache 2.4.23 на WINDOWS 2012 R2

Добрый день всем,

Я полностью застрял. Не знаю, как следовать, и что я я делаю что-то не так. Я надеюсь, что вы можете мне помочь с этим, так как я много читал, чтобы решить эту проблему, но безуспешно ...

У меня:

  • Сервер Windows 2012 R2
  • Apache 2.4.23 установлен на нем , с MOD_JK для передачи всех запросов серверу Tomcat на другом компьютере.

Я купил РАСШИРЕННЫЙ сертификат на GoDaddy, поэтому у меня может быть "зеленый значок" на строке URL.

Теперь я скачал сертификат от GoDaddy, а внутри архива ZIP есть соответствующий сертификат и пакет G2 + G1 + ROOT. Итак, 2 файла внутри.

Поместил их в папку и правильно указал внутри 443 VHOST, как вы увидите дальше, но каждый тест SSL, который я выполняю в Интернете (SSLLabs, DigiCert ...), просто терпит неудачу о процессе объединения .

Сайт: cliente.merchbanc.es

https://www.ssllabs.com/ssltest/analyze. Я позволил 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 перезапускается и сам сервер.

Итак, что теперь? Надеюсь, вы поможете мне, пожалуйста.

С уважением и уважением.

Марк.

0
задан 14 March 2017 в 18:22
3 ответа

Спасибо всем за помощь. Вся информация, которую вы мне предоставили, абсолютно ценна и позволила мне настроить мой CONF-файл так, как он должен быть. Прекрасно.

Сказав это, я нашел свою конкретную проблему и ее решение.

Мой фронтальный Apache находится за WAF (брандмауэром веб-приложений). На нем была сломана цепь. Таким образом, промежуточные центры сертификации, где не обслуживались первичные сертификаты. Потом решили, что: все на месте!

Какая головная боль...

Спасибо всем!

0
ответ дан 4 December 2019 в 16:20

Нужно разобрать строку для Файла Цепочки Сертификатов

#SSLCertificateChainFile "blah/blahblah/cliente.merchbanc.es/gd_bundle-g2-g1.crt"

Должно быть:

SSLCertificateChainFile "blah/blahblah/cliente.merchbanc.es/gd_bundle-g2-g1.crt"
1
ответ дан 4 December 2019 в 16:20

Либо инструкции (которые вы не идентифицировали) искажены, либо вы их неправильно поняли.

Изменение в 2.4.8 в сторону увеличения заключается в том, что вы можете и должны поместить свой(ие) цепной(ие) сертификат(ы) в SSLCertificateFile вместо SSLCertificateChainFile. Все версии будут использовать сертификаты в SSLCACertificate{File,Path} для завершения вашей цепочки, если это не предусмотрено в SSLCertificate{Chain,}File, но SSLCA* сертификаты будут ВСЕГДА применяться к проверке подлинности клиента, если это включено, что может быть или не быть желательным.

Но для использования SSLCACertificatePath (а не ...File) каждый сертификат должен быть в отдельном файле, и каждый файл должен иметь имя (или быть связанным, что считается именем) с использованием хэша его Subject; в Unix использование сим-ссылок является обычным (но не обязательным).

На Unix системах с OpenSSL, установленных в соответствии с соглашением (не все так делают), где-то есть скрипт c_rehash (хотя, возможно, и не в вашем обычном PATH), который делает это; если это так, то для него должна быть man-страница (иногда в специальном разделе, например, 1ssl) , которая также находится в сети . OpenSSL 1.1.0 (только) имеет эквивалентную функцию rehash в исполняемом файле командной строки openssl на некоторых системах. Так как у вас, вероятно, их нет, вы можете вручную запустить openssl x509 -hash (или эквивалентную, но более точную -subject_hash) на каждом файле cert и использовать эти функции плюс .0 для переименования или копирования файла(ов). Но SSLCACertificateFile (а не ...Path) или SSLCertificate{Chain,}File проще.

(добавлено) В частности, чтобы использовать SSLCACertificateFile, вы просто соединяете все необходимые CA-сертификаты, и, опционально, ненужные, в один файл. Так как данные в формате PEM по своей конструкции являются пригодными для печати/визуальными, это можно сделать путем вырезания и вставки в обычном текстовом редакторе, таком как Блокнот, в дополнение к таким специфическим инструментам, как cat в Unix или копирование a+b+c в Windows или >>outfile для добавления в любой из них.

PS: Apache не использует хранилище сертификатов Windows, поэтому установка вещей в хранилище сертификатов Windows никак на него не повлияет.

PPS: Если у вас нет командной строки OpenSSL на Windows, есть хороший готовый пакет по адресу http://www.slproweb.com/products/Win32OpenSSL.html

0
ответ дан 4 December 2019 в 16:20

Теги

Похожие вопросы