Мы ожидаем, что срок действия сертификата истек при проверке сертификата сервера в нашем клиенте, но мы этого не делаем.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Мы ожидаем, что срок действия сертификата истек при проверке сертификата сервера в нашем клиенте, но мы этого не делаем.

Сообщение Anonymous »

У нас есть простой SSL-сервер с истекшим сертификатом.
Установка этого в моем тесте:
System.setProperty("javax.net.debug", "ssl, рукопожатие");
Я вижу следующую информацию:

Код: Выделить всё

javax.net.ssl|DEBUG|10|main|2025-01-14 15:23:46.436 CET|CertificateMessage.java:1135|Consuming server Certificate handshake message (
"Certificate": {
"certificate_request_context": "",
"certificate_list": [
{
"certificate" : {
"version"            : "v3",
"serial number"      : "72990048E0A187EA",
"signature algorithm": "SHA256withRSA",
"issuer"             : "CN=localhost",
"not before"         : "2024-11-19 07:03:42.000 CET",
"not  after"         : "2024-11-20 07:03:42.000 CET",
"subject"            : "CN=localhost",
"subject public key" : "RSA",
"extensions"         : [
{
ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: DD CA 06 70 86 77 08 75   75 DE A5 E4 CA C0 FB BB  ...p.w.uu.......
0010: DB A9 49 33                                        ..I3
2
]
}
]}
"extensions": {

}
},
Для сервера я использую следующий код:

Код: Выделить всё

 public static void start(final int portNumber, final File tlsKeyStoreFile, boolean twoWay) throws Exception {

char[] storepass = "secret".toCharArray();
char[] keypass = "secret".toCharArray();
FileInputStream fis = new FileInputStream(tlsKeyStoreFile.getAbsoluteFile());
KeyStore keystore = KeyStore.getInstance("JKS");
keystore.load(fis, storepass);
// display certificate
Certificate cert = keystore.getCertificate("eric");
System.out.println(cert);
// setup the key manager factory
KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
kmf.init(keystore, keypass);
// setup the trust manager factory
TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509");
tmf = TrustManagerFactory.getInstance("PKIX");
tmf.init(keystore);

//Create ssl context
final SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);

//SSL socket
SSLServerSocket sslServerSocket = createSSLServerSocket(sslContext, twoWay);
sslServerSocket.setReuseAddress(true);
sslServerSocket.bind(new InetSocketAddress(portNumber));

thread = new Thread(new Runnable() {

@Override
public void run() {
try {
SSLSocket clientSocket = (SSLSocket) sslServerSocket.accept();
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(
new InputStreamReader(clientSocket.getInputStream()));

String inputLine;

while ((inputLine = in.readLine()) != null) {
out.println(inputLine);
if (inputLine.equals("BYE"))
sslServerSocket.close();
break;
}

} catch (IOException e) {
e.printStackTrace();
}
}
});
thread.start();

}
В тестовом примере я запускаю сервер перед подключением к клиенту.

Код: Выделить всё

 @BeforeClass
public void setupServer() throws Exception {
System.setProperty("javax.net.debug", "ssl,handshake");
port = PortUtil.findAvailablePort();

ServerTlsSocket.start(port, tlsKeyStoreFile);
}
Затем я создаю клиент для настройки соединения.

Код: Выделить всё

 builder = CliFactory.newTlsSocketBuilder("localhost", port, null, "",
tlsTrustStoreFile, tlsTrustStorePassword);
Однако мы не получаем ожидаемого SSLHandshakeException. Сертификат является самоподписанным.
Есть какие-нибудь подсказки о том, чего мне здесь не хватает или как я могу отладить, чтобы найти проблему?
br
//Майк

Подробнее здесь: https://stackoverflow.com/questions/793 ... -client-bu
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Срок действия сертификата Чарльза истек?
    Anonymous » » в форуме IOS
    0 Ответы
    106 Просмотры
    Последнее сообщение Anonymous
  • Ошибка подключения Mongodb: срок действия сертификата истек
    Anonymous » » в форуме Python
    0 Ответы
    37 Просмотры
    Последнее сообщение Anonymous
  • Срок действия сертификата истек или он был отозван.
    Anonymous » » в форуме IOS
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Pymongo [SSL: CERTIFICATE_VERIFY_FAILED]: срок действия сертификата в Mongo Atlas истек.
    Anonymous » » в форуме Python
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Срок действия сертификата истек или он был отозван.
    Anonymous » » в форуме IOS
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»