Генерация самозаверяющего сертификата с использованием TLSv1.2 или 1.1
У меня есть бизнес-сервер, к которому я пытаюсь подключиться, используя Java, но для этого требуется, чтобы версия Tls была либо 1.1
или же 1.2
,
У меня на компьютере установлена openssl, и я, похоже, использую Tls версии 1.1. Я проверил мою установку OpenSSL с этой командой
openssl s_client -host google.com -port 443
и это результат
SSL-Session:
Protocol : TLSv1
Cipher : AES128-SHA
Session-ID: FFE6DD3F1F78EC17999809D875E12D5138573BE52BCAA2EB55225F2EFE864127
Session-ID-ctx:
Master-Key: 7599DC1A0FDC8BC41431D7907EE933BE7527D2A658ADFC6B34B2CAB3D071DD7E13B6ED2C7C35A6EABDCA52943B1155A2
Key-Arg : None
Start Time: 1489987373
Timeout : 300 (sec)
Verify return code: 20 (unable to get local issuer certificate)
некоторая информация была опущена для удобства чтения, но вы можете проверить ее в своем терминале.
Это моя версия java
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
Как я могу сделать мой Java Keytool для создания сертификата с Tls
версия 1.1
или же 1.2
?.
1 ответ
Сертификат должен быть несущественным для перевозки.
Не зная, что вы используете для серверной части, будет немного трудно определить, каким должен быть ваш лучший образ действий.
Вы можете заставить s_client использовать только tls 1.2, передав ключ -tls1_2, но это не совсем то, что вам нужно.
Итак, скажем, вы использовали Tomcat 8 (и HTTP-коннектор не-APR), вы можете настроить только для TLSv1.2, используя атрибут sslEnabledProtocols="TLSv1.2".
По сути, sslEnabledProtocols сопоставляется с методом SSLSocket.setEnabledProtocols() Java. Причал, вероятно, имеет аналогичную конфигурацию.
Если вы используете Apache HTTPd или nginx, вероятно, есть документация, в которой будет указано, как это сделать.