Как составить список действительных сертификатов CA на сайте после повторного согласования SSL в защищенном каталоге
Как я могу перечислить действительные сертификаты CA клиента определенного сайта, используя openSSL или любой другой инструмент, если это не запрошено в корневом каталоге?
Я знаю, что вы можете использовать openssl для вывода списка сертификатов, если клиентский сертификат запрашивается в корне.
openssl s_client -connect www.example.com:443 -cert clientcert.cer -key clientcert.key -CAfile clientcertCA.pem
CONNECTED(00000003)
depth=2 <Certificate>
verify return:1
depth=1 <Certificate>
verify return:1
depth=0 <Certificate>
verify return:1
---
Certificate chain
0 <Certificate>
1 <Certificate>
2 <Certificate>
---
Server certificate
-----BEGIN CERTIFICATE-----
<Certificate>
-----END CERTIFICATE-----
---
No client certificate CA names sent
---
SSL handshake has read 4381 bytes and written 435 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1.2
Cipher : ECDHE-RSA-AES256-GCM-SHA384
Session-ID: 36B35405EAC5F45EB34C62EC755AE0462D041988BFFA1961942A2619375272B8
Session-ID-ctx:
Master-Key: FDAEC7B8114CDC8AADE3E4C8ECBA34F9648FA976CAA674AE86289AFB32D4BAAEE8FC19C51A56F11105CC85F56AC08A4D
Key-Arg : None
Krb5 Principal: None
PSK identity: None
PSK identity hint: None
Start Time: 1514378943
Timeout : 300 (sec)
Verify return code: 0 (ok)
---
Только когда я захожу в защищенный каталог, он вызывает пересмотр с запросом сертификата клиента:
GET /protected HTTP/1.1
Host: www.example.com
Accept: */*
depth=2 <Certificate>
verify return:1
depth=1 <Certificate>
verify return:1
depth=0 <Certificate>
verify return:1
140676237768520:error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca:s3_pkt.c:1256:SSL alert number 48
140676237768520:error:140940E5:SSL routines:SSL3_READ_BYTES:ssl handshake failure:s3_pkt.c:1156:
Как показано, я получаю ошибку "неизвестный CA", или сервер не знает / не доверяет CA сертификата клиента, который я использую. Как я могу получить список поддерживаемых центров сертификации, чтобы доказать проблему владельцу сайта?