简短的故事,我的老板想要为我们所做的很多应用程序使用单一登录,并且我为此需求尝试CAS。关于CAS服务的javax.net.ssl.SSLHandshakeException
我试图安装CAS作为我的SSO。我从java bin中的keytool生成jks文件。登录和注销工作正常,直到我想尝试添加一些服务。
https://localhost:8443/cas/services/j_acegi_cas_security_check?ticket=ST-2-Ts4EoUqKfeGOGGi1XbXq-cas01.example.org
此错误将出来:
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)
所以,我谷歌和尝试这个事情,但还是失败了:
我第一件事运行此命令,它的成功:
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
将jks文件导入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"
但错误出来:
keytool error: java.lang.Exception: Input not an X.509 certificate
也尝试生成X509文件
openssl x509 -in "C:\Users\User\Documents\localhost.csr" -out "C:\Users\User\Documents\localhost.der" -outform DER
,但这个错误出来:
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
请指教,如果任何解决方法我尝试? PS:在Windows 8 64位上使用tomcat 6。 (这就是为什么我总是用我的文档文件夹,因为它如果我使用其他地方不工作)
嗨,丹尼尔,请您简要介绍一下您遵循的步骤。我有点困惑,因为即使我也面临这个问题。谢谢。 – GuruKulki 2015-03-09 15:15:00