IIS отправляет неправильный промежуточный сертификат SSL

Я просто установил новый сертификат SSL (от StartCom) к одному из наших серверов и заметил, что в Chrome существует пересеченный значок замка, отображенный для сайта, таким образом, я начал заниматься расследованиями, почему то, что так. Оказалось, что это - потому что промежуточный сертификат, отправленный в браузер, использует старый алгоритм сигнатуры SHA-1.

Только, чтобы быть уверенным, я захватил наш сертификат (как первоначально issed CA), выполнил его снова через OpenSSL для слияния его с промежуточным сертификатом SHA-2 (я загрузил его с сайта CA), и обновил его снова на IIS. Это все еще не помогло.

Я запустил тест в Labs SSL, и это - то, что он показывает:

enter image description here

То, что я не знаю, - то, где делает промежуточный сертификат, показанный здесь (тот с цифровым отпечатком "a1ac...") прибывают из.

  1. Это не установлено на сервере - я проверил что путем попытки найти его в снимке "Сертификатов" сервера - в консоли:

enter image description here

  1. Это не часть сертификата, который я присвоил сайту - это - вывод certutil - выводят cert.pfx:

    ================ Certificate 0 ================
    ================ Begin Nesting Level 1 ================
    Serial Number: 1cab36472d9c51
    Issuer: CN=StartCom Certification Authority, OU=Secure Digital Certificate Signing, O=StartCom Ltd., C=IL
     NotBefore: 10/14/2007 10:57 PM
     NotAfter: 10/14/2022 10:57 PM
    Subject: CN=StartCom Class 2 Primary Intermediate Server CA, OU=Secure Digital Certificate Signing, O=StartCom Ltd., C=IL
    Non-root Certificate
    Template: 
    Cert Hash(sha1): 06 49 69 b7 f4 d6 a7 4f d0 98 be 59 d3 79 fa e4 29 a9 06 fb
    ----------------  End Nesting Level 1  ----------------
    No key provider information
    Cannot find the certificate and private key for decryption.
    
    ================ Certificate 1 ================
    ================ Begin Nesting Level 1 ================
    Serial Number: 07aa747ba37df3
    Issuer: CN=StartCom Class 2 Primary Intermediate Server CA, OU=Secure Digital Certificate Signing, O=StartCom Ltd., C=IL
     NotBefore: 7/15/2015 3:41 AM
     NotAfter: 7/15/2017 3:23 AM
    Subject: E=jan.valenta@idioma.com, CN=*.idioma.com, O=IDIOMA, s.r.o., L=Praha, S=Praha, C=CZ
    Non-root Certificate
    Template: 
    Cert Hash(sha1): 02 90 be 6e 6e b8 a5 7a ff aa a2 ac 95 b8 61 2a 3d c7 80 f6
    ----------------  End Nesting Level 1  ----------------
      Key Container = <hidden>
      Unique container name: <hidden>
      Provider = Microsoft Enhanced Cryptographic Provider v1.0
    Encryption test passed
    CertUtil: -dump command completed successfully.
    

Обратите внимание, что промежуточная подпись сертификата не соответствует выводу Labs SSL. Это однако соответствует тому, что я вижу, когда я открываю сертификат сайта на IIS, перейдите к его пути сертификации, откройте промежуточный сертификат и посмотрите его подпись.

Что заставляет IIS отправить этот конкретный промежуточный сертификат?

ОБНОВЛЕНИЕ:

Общедоступная часть моего сертификата (самый файл CRT я добрался от CA) здесь.

Вывод certutil -verifystore CA "StartCom Class 2 Primary Intermediate Server CA":

CA "Intermediate Certification Authorities"
================ Certificate 3 ================
Serial Number: 1cab36472d9c51
Issuer: CN=StartCom Certification Authority, OU=Secure Digital Certificate Signing, O=StartCom Ltd., C=IL
 NotBefore: 10/14/2007 10:57 PM
 NotAfter: 10/14/2022 10:57 PM
Subject: CN=StartCom Class 2 Primary Intermediate Server CA, OU=Secure Digital Certificate Signing, O=StartCom Ltd., C=IL
Non-root Certificate
Cert Hash(sha1): 06 49 69 b7 f4 d6 a7 4f d0 98 be 59 d3 79 fa e4 29 a9 06 fb
No key provider information
Cannot find the certificate and private key for decryption.
Encryption test passed
Verified Issuance Policies:
    1.3.6.1.4.1.23223.1.1.1
Verified Application Policies:
    1.3.6.1.5.5.7.3.1 Server Authentication
    1.3.6.1.5.5.7.3.2 Client Authentication
    1.3.6.1.5.5.7.3.4 Secure Email
    1.3.6.1.5.5.7.3.3 Code Signing
    1.3.6.1.5.5.7.3.8 Time Stamping
    1.3.6.1.4.1.311.10.3.4 Encrypting File System
    1.3.6.1.5.5.7.3.6 IP security tunnel termination
    1.3.6.1.5.5.7.3.7 IP security user
Certificate is valid
CertUtil: -verifystore command completed successfully.

Вывод certutil -GroupPolicy -verifystore CA "StartCom Class 2 Primary Intermediate Server CA":

CA "Intermediate Certification Authorities"
CertUtil: -verifystore command FAILED: 0x80090011 (-2146893807 NTE_NOT_FOUND)
CertUtil: Object was not found.
3
задан 17 July 2015 в 10:40
2 ответа

Это не ошибка IIS. Похоже, вы загрузили неправильный промежуточный сертификат CA или неправильно объединили сертификаты с OpenSSL.

IIS внутренне создает цепочку сертификатов и использует эти сертификаты (кроме корневого сертификата, который не передается во время подтверждения SSL) для отправки клиенту. Даже если сертификат не представлен в магазине, IIS может использовать расширение сертификата доступа к информации о полномочиях для получения отсутствующего сертификата эмитента.

На основании ваших выходных данных промежуточный сертификат CA (в пакете PFX) не является правильным эмитентом вашего сертификата . Если бы вы могли отправить нам (или опубликовать здесь) публичную часть вашего сертификата, я бы предоставил больше информации о том, что происходит. Но, скорее всего, проблема на стороне StartCom.

Edit 17.07.2015

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

Хорошей практикой является обновление сертификата CA с новой парой ключей, когда в сертификате CA изменена какая-либо важная информация.

Что вы должны сделать сделать (если возможно):

  1. удалить привязки в IIS.
  2. экспортировать сертификат SSL в PFX. В мастере экспорта снимите флажок с опции, которая включает все сертификаты в цепочке, и отметьте, чтобы удалить закрытый ключ в случае успешного экспорта.
  3. удалить сертификат из хранилища и очистить кеш CryptoAPI: certutil -urlcache * delete .
  4. установите соответствующий сертификат CA StartSSL на локальном компьютере \ промежуточных центрах сертификации: ( https://www.startssl.com/certs/class2/sha2/der/sub.class2.server.sha2.ca. crt )
  5. установить экспортированный PFX в машинное хранилище (личный контейнер). Вы можете отметить закрытый ключ как экспортируемый во время операции импорта.
  6. Дважды щелкните сертификат, перейдите на вкладку «Путь сертификации», выберите промежуточный сертификат ЦС -> Просмотр сертификата и проверьте, является ли он правильным сертификатом SHA256.
  7. настроить Привязки SSL в IIS.
7
ответ дан 3 December 2019 в 05:12

Хотя я не могу конкретно комментировать StartCom, у меня были аналогичные проблемы в прошлом от поставщиков, переходящих с SHA 1 на SHA 2, обычно проблемы с сертификатами перекрестной подписи.

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

В вашем случае это будут «ЦС первичного промежуточного сервера StartCom класса 2» и «Центр сертификации StartCom». Вы, вероятно, захотите сначала экспортировать их, чтобы быть в безопасности.

На этом этапе вы должны иметь возможность импортировать новые сертификаты из пакета CA от поставщика.

0
ответ дан 3 December 2019 в 05:12

Теги

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