javax.net.le protocole ssl.SSLHandshakeException sur le CAS des Services
Histoire courte, mon patron veut utiliser une connexion unique pour de nombreuses applications que nous avons faites et j'essaie CAS pour ce besoin.
J'essaie d'installer CAS comme mon SSO. je génère un fichier jks à partir de keytool dans java bin. la connexion et la déconnexion fonctionnent bien jusqu'à ce que je veuille essayer d'ajouter des services.
https://localhost:8443/cas/services/j_acegi_cas_security_check?ticket=ST-2-Ts4EoUqKfeGOGGi1XbXq-cas01.example.org
Cette erreur sortira:
java.lang.RuntimeException: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No name matching localhost found
org.jasig.cas.client.util.CommonUtils.getResponseFromServer(CommonUtils.java:341)
org.jasig.cas.client.util.CommonUtils.getResponseFromServer(CommonUtils.java:305)
org.jasig.cas.client.validation.AbstractCasProtocolUrlBasedTicketValidator.retrieveResponseFromServer(AbstractCasProtocolUrlBasedTicketValidator.java:50)
org.jasig.cas.client.validation.AbstractUrlBasedTicketValidator.validate(AbstractUrlBasedTicketValidator.java:207)
Donc je google et j'essaie cette chose mais j'ai toujours échoué:
Première chose que j'exécute cette commande et son succès:
keytool -genkey -alias localhost -keyalg RSA -keystore C:\Users\User\Documents\keystore.jks -keysize 2048
keytool -certreq -alias localhost -keystore C:\Users\User\Documents\keystore.jks -file C:\Users\User\Documents\localhost.csr
Importer le fichier jks vers java
keytool -import -trustcacerts -alias localhost -keystore "C:/Program Files/Java/jdk1.7.0/bin/jre/lib/security/cacerts" -file "D:\apache tomcat 6\bin\keystore.jks"
Mais une erreur sort:
keytool error: java.lang.Exception: Input not an X.509 certificate
Essayez également de générer un fichier x509
openssl x509 -in "C:\Users\User\Documents\localhost.csr" -out "C:\Users\User\Documents\localhost.der" -outform DER
Mais cette erreur sort:
unable to load certificate
24516:error:0906D06C:PEM routines:PEM_read_bio:no start line:.\crypto\pem\pem_li
b.c:696:Expecting: TRUSTED CERTIFICATE
Veuillez conseiller si une solution que je peux essayer?
PS : utilisation de tomcat 6 sur Windows 8 64 bits. (c'est pourquoi j'utilise toujours mon dossier de document, car cela ne fonctionne pas si j'utilise ailleurs)
2 answers
Salut, je résous ce moi-même enfin...
Peut-être que quelqu'un d'autre en a besoin..
- j'exécute l'application avec https avec le fichier jks que j'exporte.
- afficher les certificats avec le navigateur.
- Exportez-le et enregistrez-le dans .fichier cer
- importez-le avec java keytool.
C'est la commande :
keytool -import -trustcacerts -alias localhost -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -file "D:/apache tomcat 6/bin/daniel2.cer"
J'ai eu le même problème et je l'ai résolu en fonction de vos pas mais avec un pas de plus. Après la commande
keytool -genkey -alias localhost -keyalg RSA -keystore C:\Users\User\Documents\keystore.jks -keysize 2048
Il demande votre nom et prénom. Le prénom et le nom de famille doivent être le nom d'hôte de votre serveur et ne peuvent pas être une adresse IP. J'ai entré mon vrai prénom un nom de famille et c'était incorrect.