2014-01-19 4 views
8

Я попытался установить клиент Oracle Entitlements Server. Когда я называюИсключение установления связи SSL: «Проверка ограничений алгоритмов не выполнена: MD5withRSA»

config.cmd -smConfigId Sample-SM -prpFileName C:\oracle\product\11.1.2\as_1\oessm\SMConfigTool\smconfig.java.controlled.prp 

Я получил это исключение:

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: Algorithm constraints check failed: MD5withRSA 
     at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) 
     at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1884) 
     at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:276) 
     at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:270) 
     at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1341) 
     at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:153) 
     at sun.security.ssl.Handshaker.processLoop(Handshaker.java:868) 
     at sun.security.ssl.Handshaker.process_record(Handshaker.java:804) 
     at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1016) 
     at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312) 
     at sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:702) 
     at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:122) 
     at java.io.OutputStream.write(OutputStream.java:75) 
     at oracle.security.oes.enroll.EnrollmentClient.writeToSocket(EnrollmentClient.java:330) 
     at oracle.security.oes.enroll.EnrollmentClient.enroll(EnrollmentClient.java:161) 
     at oracle.security.oes.enroll.EnrollmentClient.main(EnrollmentClient.java:478) 
     at oracle.security.oes.tools.EnrollmentTool.doEnroll(EnrollmentTool.java:103) 
     at oracle.security.oes.tools.SMConfigTool.doEnrollment(SMConfigTool.java:1192) 
     at oracle.security.oes.tools.SMConfigTool.run(SMConfigTool.java:617) 
     at oracle.security.oes.tools.SMConfigTool.main(SMConfigTool.java:546) 
    Caused by: sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: Algorithm constraints check failed: MD5withRSA 
     at sun.security.validator.PKIXValidator.doValidate(PKIXValidator.java:350) 
     at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:260) 
     at sun.security.validator.Validator.validate(Validator.java:260) 
     at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:326) 
     at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:231) 
     at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:126) 
     at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1323) 
     ... 15 more 
    Caused by: java.security.cert.CertPathValidatorException: Algorithm constraints check failed: MD5withRSA 
     at sun.security.provider.certpath.PKIXMasterCertPathValidator.validate(PKIXMasterCertPathValidator.java:159) 
     at sun.security.provider.certpath.PKIXCertPathValidator.doValidate(PKIXCertPathValidator.java:351) 
     at sun.security.provider.certpath.PKIXCertPathValidator.engineValidate(PKIXCertPathValidator.java:191) 
     at java.security.cert.CertPathValidator.validate(CertPathValidator.java:279) 
     at sun.security.validator.PKIXValidator.doValidate(PKIXValidator.java:345) 
     ... 21 more 
sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: Algorithm constraints check failed: MD5withRSA 

Можете ли вы помочь мне найти причину?

+1

Возможно, вы захотите уменьшить размер ключа для RSA (по умолчанию, по умолчанию, 1024, например, 256). – keyser

+1

«Начиная с 7u40, использование сертификатов x.509 с ключами RSA длиной менее 1024 бит ограничено». http://java.com/ru/download/faq/release_changes.xml. Я попытался сменить Java 7 на Java 6, и это сработало. – egorlitvinenko

+0

Как проверить длину ключа: http://serverfault.com/questions/325467/i-have-a-keypair-how-do-determine-the-key-length – Vadzim

ответ

0

keyser дал направление ответа в комментарии.

Проблема была в длине ключа. Короче говоря: "Starting from 7u40, the use of x.509 certificates with RSA keys less than 1024 bits in length is restricted."

Правильный способ решения этой проблемы - использовать сертификаты с длиной ключа не менее 2048 бит.

21

Проблема вызвана тем, что Oracle отключает хеш-алгоритмы, которые больше не считаются безопасными. Посмотрите на

JRE_HOME/lib/security/java.security 

Он содержит следующие свойства:

jdk.certpath.disabledAlgorithms 
jdk.tls.disabledAlgorithms 

Вы можете настроить их соответствующим образом. Например, удалите MD5 от прежнего и MD5withRSA от последнего.

+0

Это билет. Я привык к тому, чтобы открутить компоненты VMware (привет, XP все еще существует). Я не привык к тому, чтобы отключить java. –

+0

Есть ли способ разрешить только алгоритм из определенного источника? Я должен разрешать это исключение только для одного или двух серверов, которым я доверяю. –

Смежные вопросы