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

SSL с подстановочными знаками работает непоследовательно в браузерах / ОС / компьютерах

У меня есть подстановочный SSL-сертификат, установленный в домене, размещенном с Media Temples Dedicated Virtual 4.0. Вот простой пример страницы, которую я пытаюсь обслуживать через SSL: https://ssltest.bblhosted.com/

Другие люди, которых я спрашивал (около 4 или 5), говорят, что сайт отлично работает на их компьютерах, в различных браузерах, без предупреждений о безопасности. Однако на моем компьютере я получаю противоречивые результаты.

Вот мои результаты. Я использую последнюю версию OSX, Windows 7 работает через Parallels и последние версии всех браузеров:

OSX / Firefox: Замок показывает, проблем нет. Windows 7 / Firefox: Предупреждение - "Это соединение ненадежное"

OSX / Chrome: Предупреждение - «Безопасность этого сайта не заслуживает доверия!» Windows 7 / Chrome: Зеленый замок - «Идентификация подтверждена RappidSSL CA».

OSX / Opera: Предупреждение - «Цепочка сертификатов этого сервера неполная, и подписывающие лица не зарегистрированы. Принять? Windows 7 / Opera: Замок показывает: «Надежно подключено, чистая запись о безопасности».

OSX / Safari: Предупреждение - «Safari не может проверить подлинность веб-сайта»

Windows 7 / IE: Padlock показывает: «Это соединение с сервером зашифровано».

Мой вопрос: может ли кто-нибудь дать какое-либо представление о том, что может вызывать проблему здесь, или как ее исправить? Может быть, проблема только в моем компьютере, и если да, то в чем? Что особенно странно, так это то, что я получаю противоположные результаты в OSX и Windows 7 для одних и тех же браузеров.

Даже если вы можете просто прокомментировать, какой браузер / ОС вы используете, и работает ли он для вас, это было бы здорово! Спасибо.

_______ ОБНОВИТЬ:

Первоначальное электронное письмо от Rapid SSL дало мне один сертификат и один сертификат CA. Я обновил его, включив в него два сертификата CA Вот, с которым связан Кристофер Перрин.

Я тестировал ssltest.bblhosted.com с помощью Инструмент Rapid SSL и в нем говорится, что все настроено правильно (хотя этот инструмент работал успешно, прежде чем я также изменил сертификат CA).

Этот инструмент выдает ошибку - и говорит, что, скорее всего, это проблема с промежуточным сертификатом.

Я обновляю сертификат через Plesk и получаю предупреждение «Предупреждение: сертификат CA не подписывает сертификат.», Хотя согласно этому, вы можете игнорировать это предупреждение.

SSL отлично работает для https://www.bblhosted.com/, https://bblhosted.com/ и https://anythinggoeshere.bblhosted.com/ - не работает только для явно настроенных поддоменов.

в var / log / httpd / error_log у меня есть куча ошибок, например: "Подстановочный знак сертификата сервера RSA CommonName (CN)` * .bblhosted.com 'НЕ соответствует имени сервера !? "

и в ssl_error_log у меня куча ошибок, например: «[предупреждение] Сертификат сервера RSA - это сертификат CA (BasicConstraints: CA == TRUE!?)»

У меня недостаточно опыта, чтобы понять, что они означают. Завтра я продолжу бой!

Возможно, ваша цепочка сертификатов не завершена. Возможно, вам потребуется добавить Пакет RapidSSL CA. к вашему сертификату.

В Apache у вас есть возможность SSLCertificateChainFile. Установите это в путь, где вы сохранили Пакет RapidSSL CA.

Другой вариант - добавить сертификаты цепочки к своим собственным, добавив их в свой сертификат следующим образом

cat mycert.pem RapidSSL_CA_bundle.pem >> mychainedcert.pem

Это должно решить проблему.

Объяснение

Очевидно, вы купили сертификат в RapidSSL. Однако RapidSSL не является одним из центров сертификации, которым доверяют ваши браузеры. Это не проблема, потому что ваш браузер доверяет GeoTrust, а GeoTrust доверяет RapidSSL. Вам просто нужно показать браузеру сертификат, подтверждающий это. Вот почему вам нужно включить файл цепочки.

Хорошо, так что Кристофер Перрин поставил меня на правильный путь с SSLCertificateChainFile - Спасибо. Вот подробности, если они кому-то помогают. Я использую Plesk 11, и очевидно, что пути, о которых я говорю, будут другими для других.

Когда я создаю поддомен ssltest.bblhosted.com, Plesk создает файл по адресу /var/www/vhosts/ssltest.bblhosted.com/conf/13558069200.18494000_httpd.include (или похожие). Этот файл фактически служит целям файла vhost.conf (или vhost_ssl.conf), за исключением того, что он автоматически создается plesk и будет автоматически заменяться каждый раз, когда вы меняете настройки через Plesk.

Файл содержит строку:

SSLCertificateFile /usr/local/psa/var/certificates/cert-Eq8jue

который показывает, где найти мой сертификат SSL. В нем нет строки, указывающей, где найти сертификат CA. Итак, он должен содержать строку:

SSLCertificateChainFile /usr/local/psa/var/certificates/cert-t8ReAO

(Очевидно, путь должен указывать на ваш собственный сертификат CA). Насколько я могу судить, тот факт, что эта строка не включена, является ошибкой в ​​Plesk. Вы можете добавить строку в этот файл прямо под SSLCertificateFile строка, а затем перезапустите Apache, и он будет работать - ОДНАКО, если вы это сделаете, файл будет переопределен в следующий раз, когда вы измените настройки для этого домена в Plesk, и вы потеряете свои изменения. В верхней части файла Plesk выдает следующее предупреждение:

#ATTENTION!
#
#DO NOT MODIFY THIS FILE BECAUSE IT WAS GENERATED AUTOMATICALLY,
#SO ALL YOUR CHANGES WILL BE LOST THE NEXT TIME THE FILE IS GENERATED.
#
#IF YOU REQUIRE TO APPLY CUSTOM MODIFICATIONS, PERFORM THEM IN THE  FOLLOWING FILES:

#/var/www/vhosts/ssltest.bblhosted.com/conf/vhost.conf
#/var/www/vhosts/ssltest.bblhosted.com/conf/vhost_ssl.conf

Итак, я создал /var/www/vhosts/ssltest.bblhosted.com/conf/vhost_ssl.conf и добавил к нему единственную строчку:

SSLCertificateChainFile /usr/local/psa/var/certificates/cert-t8ReAO

Вам не нужно ничего добавлять, кроме этой единственной строки. Насколько мне известно, все остальные настройки по-прежнему будут взяты из файла httpd.include по умолчанию, созданного Plesk.

Теперь вы должны указать Plesk, что нужно искать файл vhost_ssl.conf, потому что по умолчанию он этого не делает, даже если вы его создали! Сделайте это, войдя в систему через SSH и выполнив эту команду:

/usr/local/psa/admin/bin/httpdmng --reconfigure-all

Это скажет Plesk искать vhost.conf (и vhost_ssl.conf) для всех доменов. При необходимости вы также можете сделать это только для одного домена.

Наконец, перезапустите Apache, и SSL заработает!

Обратите внимание, что если вы добавляете еще один поддомен, вам нужно снова пройти весь процесс, включая выполнение команды терминала, чтобы Plesk искал vhost.conf и vhost_ssl.conf для вашего нового домена или поддомена.

Я недавно настроил именно этот сценарий. Мне нужно будет проверить дальше, НО:

При проверке данных сертификата вы получаете:

Номинальный DNS: * .bblhosted.com Номинальный DNS: bblhosted.com

Вы получили bblhosted.com как AltDNSName.

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

Таким образом, шаблонная маска сертификата будет соответствовать указанному URL-адресу всеми возможными способами, которыми браузер должен его проверять.

TL; DR: получите два новых сертификата, один с просто «bblhosted.com» как altDnsName / CN и один с «* .bblhosted.com».

РЕДАКТИРОВАТЬ: вы можете проверить, является ли это проблемой, запустив несколько бесплатных сертификатов парнями в http://www.cacert.org . Я не стал беспокоиться о коммерческом сертификате, и у меня он есть в качестве основных сертификатов ssl. Единственная проблема заключается в том, что большинство ОС не поставляют свой корневой сертификат, поэтому вам придется установить его самостоятельно.

Сертификат может содержать специальный Доступ к информации о полномочиях расширение (RFC-3280) с URL-адресом сертификата эмитента. Большинство браузеров могут использовать расширение AIA для загрузки отсутствующего промежуточного сертификата для завершения цепочки сертификатов. Но некоторые клиенты (мобильные браузеры, OpenSSL) не поддерживают это расширение, поэтому сообщают о таком сертификате как о ненадежном.

Вы можете решить неполная цепочка сертификатов вручную, объединив все сертификаты от сертификата до доверенного корневого сертификата (исключительно в этом порядке), чтобы предотвратить такие проблемы. Обратите внимание: доверенного корневого сертификата там не должно быть, так как он уже включен в хранилище корневых сертификатов системы.

Вы должны иметь возможность получать промежуточные сертификаты от издателя и объединять их самостоятельно. Кстати, я написал сценарий для автоматизации процедуры, он перебирает расширение AIA для вывода правильно связанных сертификатов. https://github.com/zakjan/cert-chain-resolver