У нас есть сервер IIS 7 с подстановочным сертификатом. Это должно сработать, если вы протестируете его в любом браузере: https://www.profcoach.nl
Но когда я пытаюсь протестировать это в Safari MaxOS Leopard или Lion, это не работает, отладчик говорит:
ПОЛУЧИТЬ https://profcoach.nl/ Сертификат для этого сервера недействителен. Возможно, вы подключаетесь к серверу, который выдает себя за «profcoach.nl», что может поставить под угрозу вашу конфиденциальную информацию.
Проблема в том, что он не дает мне правильного всплывающего окна с предупреждением графического интерфейса, он просто убивает запрос.
В чем может быть точная проблема?
Пара вещей:
Подстановочные знаки предназначены для определенного уровня домена. Если ваш подстановочный знак предназначен для «* .example.com», то простое имя «example.com» не распространяется. Вам понадобится альтернативное имя субъекта, чтобы покрыть дополнительный «example.com».
Вторая проблема:
Я получаю сообщение об ошибке при переходе по любому из URL. Например:
$ curl -Iv https://www.profcoach.nl/
* About to connect() to www.profcoach.nl port 443 (#0)
* Trying 91.224.164.224... connected
* Connected to www.profcoach.nl (91.224.164.224) port 443 (#0)
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS alert, Server hello (2):
* SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Когда я смотрю на сам сертификат, я вижу:
$ openssl s_client -connect www.profcoach.nl:443 | openssl x509 -noout -subject
depth=1 /C=BE/O=GlobalSign nv-sa/CN=GlobalSign Domain Validation CA - G2
verify error:num=20:unable to get local issuer certificate
verify return:0
subject= /OU=Domain Control Validated/CN=*.profcoach.nl
Таким образом, общее имя должно работать для www.profcoach.nl.
Вы следовали инструкциям центра сертификации по установке каких-либо промежуточных сертификатов?
https://www.globalsign.com/support/intermediate-root-install.php
Похоже, у них есть инструкции по установке IIS на боковой панели.
О, я только что понял, что Globalsign стал целью иранских хакеров в прошлом году (http://www.theregister.co.uk/2011/09/07/globalsign_suspends_ssl_cert_biz/). Возможно, они убили свои старые промежуточные сертификаты, и вам нужно будет убедиться, что у вас установлены их текущие, так что путаница на Mac может быть связана с этим. Я хотел бы связаться с их службой поддержки по этому вопросу, чтобы получить разъяснения.
Обновить
Используйте комплект по адресу https://www.globalsign.com/support/intermediate/domain_bundle2011.php. Я поместил этот пакет в файл foo.crt
, и бег curl -Iv --cacert foo.crt https://www.profcoach.nl
правильно проверяет:
$ curl -Iv --cacert foo.crt https://www.profcoach.nl
* About to connect() to www.profcoach.nl port 443 (#0)
* Trying 91.224.164.224... connected
* Connected to www.profcoach.nl (91.224.164.224) port 443 (#0)
* successfully set certificate verify locations:
* CAfile: foo.crt
CApath: none
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Server finished (14):
* SSLv3, TLS handshake, Client key exchange (16):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSL connection using AES128-SHA
* Server certificate:
* subject: OU=Domain Control Validated; CN=*.profcoach.nl
* start date: 2012-07-05 14:59:04 GMT
* expire date: 2013-07-06 14:59:04 GMT
* subjectAltName: www.profcoach.nl matched
* issuer: C=BE; O=GlobalSign nv-sa; CN=GlobalSign Domain Validation CA - G2
* SSL certificate verify ok.
Проблема оказалась в длине ключа сертификата. Это было 8k, после повторной выдачи сертификата с размером ключа 2k он работал как шарм.
Очень странно, что эта проблема есть только в Safari на MacOS!