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

Что означают эти ошибки подключения TLS / SSL между IIS и сервером Apache?

Я разрабатываю соединение между нашим сервером IIS и клиентским сервером, на котором работает Apache. Я настроил 2 способа TLS (требуется HTTPS). Когда они пытаются подключиться к нам, они получают следующее, а мы просто получаем ошибку 500 для журнала в IIS.

E2E connection XX.XXX.XXX.XXX:XXXXX<->XX.XXX.XXX.XXX:XXXXX3 <==> XX.XXX.XXX.XXX:XXXXX<->XX.XXX.XXX.XXX:XXXXX established.
Using Cipher: ECDHE-RSA-AES256-SHA384 TLSv1.2 256
Connection error: ssl_hs_rxhelloreq:6290: renegotiation disallowed (40)
Client connection XX.XXX.XXX.XXX:XXXXX<->XX.XXX.XXX.XXX:XXX closed.
<SERVER_CLOSED>: 10.115.142.228:443 closed the connection

Я новичок в устранении неполадок TLS / SSL, но из того, что я могу прочитать, повторное согласование запрещено (40), похоже, является переломным моментом. Имеется в виду безопасное повторное согласование (шифра)? Может ли это позволить клиент?

Используя OpenSSL на нашем сервере, кажется, все читается нормально. Нормально ли постоянно пересматривать шифр? И почему я вижу несколько строк дважды, даже если это успешное соединение?

SSL_connect:before/connect initialization
SSL_connect:SSLv2/v3 write client hello A
SSL_connect:SSLv3 read server hello A
SSL_connect:SSLv3 read server certificate A
SSL_connect:SSLv3 read server key exchange A
SSL_connect:SSLv3 read server done A
SSL_connect:SSLv3 write client key exchange A
SSL_connect:SSLv3 write change cipher spec A
SSL_connect:SSLv3 write finished A
SSL_connect:SSLv3 flush data
SSL_connect:SSLv3 read finished A
GET / HTTP/1.0

SSL_connect:SSL renegotiate ciphers
SSL_connect:SSLv3 write client hello A
SSL_connect:SSLv3 read server hello A
SSL_connect:SSLv3 read server certificate A
SSL_connect:SSLv3 read server key exchange A
SSL_connect:SSLv3 read server certificate request A
SSL_connect:SSLv3 read server done A
SSL_connect:SSLv3 write client certificate A
SSL_connect:SSLv3 write client key exchange A
SSL_connect:SSLv3 write certificate verify A
SSL_connect:SSLv3 write change cipher spec A
SSL_connect:SSLv3 write finished A
SSL_connect:SSLv3 flush data
SSL_connect:SSLv3 read finished A
HTTP/1.1 200 OK
Cache-Control: private
Content-Length: 106
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/8.5
TechnicalId:
EventName:

По иронии судьбы эта проблема была решена путем включения согласования clientcertnegotiation на сайте IIS. По умолчанию IIS запрашивает сертификат клиента только после того, как дана команда запроса (например, GET / HTTP / 1.0). Включение этого заставляет клиента аутентифицироваться при первом запросе. Обычно это не проблема, но, поскольку у нашего клиента строгие политики безопасности, это было необходимо.

https://blogs.technet.microsoft.com/nettracer/2013/12/30/how-it-works-on-the-wire-iis-http-client-certificate-authentication/

  • Получите хэш сертификата и идентификатор приложения из текущей привязки SSL

  • Удалить существующую привязку SSL

  • Снова добавьте привязку SSL с новыми параметрами.

    netsh http show sslcert ipport=<ip>:<port>
    netsh http delete sslcert ipport=<ip>:<port>
    netsh http add sslcert ipport=<ip>:<port> certhash= $certHash appid=$appId clientcertnegotiation=enable