Как клиент устанавливает цепочку сертификатов в хранилище ключей?

Нашему клиенту необходимо подключиться к серверу с двухсторонней аутентификацией SSL. В моем случае я использую 'keytool -genkey' для генерации хранилища ключей и использую 'keytool -certreq' для экспорта файла csr. Серверная сторона получает мой файл csr и подписывает его CA, а затем верните мне новый файл cer, подписанный CA и сертификатом Root CA. Вопрос в том, как мне обновить хранилище ключей, чтобы завершить аутентификацию на стороне сервера? Вот мой шаг для создания хранилища ключей.

keytool -genkey -alias client -keyalg RSA -keystore D://key/client.keystore -validity 3650
keytool -certreq -alias client -keystore D://key/client.keystore -file client.csr

Используя wireshark, я могу обнаружить, что мой клиент отправляет сертификат, сгенерированный моим хранилищем ключей, который самозаверяющий, но на стороне сервера фактически импортирует файл cer, который подписан CA как клиентский сертификат, в свое хранилище доверенных сертификатов, что привело к сбою рукопожатия каждый раз.

PS: файл cer сервера уже импортирован в мое хранилище доверенных сертификатов, поэтому вопрос только о файле cer клиента. Вот захват захвата

1 ответ

Решение

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

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

Другие вопросы по тегам