虽然我的网站证书没问题,(“openssl verify mysite.com.cer”导致OK),并且我的网站通过ssl认证,包括url-bar中的绿色锁定,我的网站正在生成致命警报:bad_certificate只要我的WSO2应用程序中的订阅者执行api。
[2018-06-08 10:54:47,167] ERROR - SourceHandler I/O error: Received fatal alert: bad_certificate
javax.net.ssl.SSLException: Received fatal alert: bad_certificate
at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1666)
at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1634)
at sun.security.ssl.SSLEngineImpl.recvAlert(SSLEngineImpl.java:1800)
at sun.security.ssl.SSLEngineImpl.readRecord(SSLEngineImpl.java:1083)
at sun.security.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:907)
at sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:781)
at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:624)
at org.apache.http.nio.reactor.ssl.SSLIOSession.doUnwrap(SSLIOSession.java:245)
at org.apache.http.nio.reactor.ssl.SSLIOSession.decryptData(SSLIOSession.java:378)
at org.apache.http.nio.reactor.ssl.SSLIOSession.isAppInputReady(SSLIOSession.java:413)
at org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:119)
at org.apache.http.impl.nio.reactor.BaseIOReactor.validate(BaseIOReactor.java:218)
at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:281)
at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:105)
at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:586)
at java.lang.Thread.run(Thread.java:748)
我浏览了几个关于'bad_certificate'的stackoverflow问题,但没有找到解决方案。
要导入我的证书,我跟着WSO2's docs:
openssl pkcs12 -export -in SSL_certificate_www_mysite_com.crt -inkey www.mysite.com.key -name "mykeys" -certfile mysite.com.cer -out mykeys.pfx
keytool -importkeystore -srckeystore mykeys.pfx -srcstoretype pkcs12 -destkeystore mykeys.jks -deststoretype JKS
keytool -export -alias "mykeys" -keystore mykeys.jks -file mykeys.pem
copied mykeys.pem and mykeys.jks to /usr/local/opt/wso2am-2.2.0/repository/resources/security/
keytool -import -alias "mykeys" -file mykeys.pem -keystore client-truststore.jks -storepass wso2carbon and answered yes to include the certificate
然后我不得不更改几个配置文件以使用mykeys而不是wso2carbon。所以我做到了。
然后我重新启动wso2-carbon,登录并检查mykeys.JKS是否出现在密钥库列表中,确实如此。
我的网站是正确的ssl认证,绿色锁显示在网址栏中。所有工作正常,直到作为订阅者登录我尝试执行API,这导致响应“错误 - SourceHandler I / O错误:收到致命警报:bad_certificate”和上述日志来自{{3 }}
此错误记录在repository / logs / wso2-apigw-errors.log和wso2carbon.log中,但仅记录此消息,没有别的。
在哪里查看我的证书未正确验证的原因?
答案 0 :(得分:2)
问题出在自签名证书上
假设您的服务在此端点发布:
https://192.168.99.3:8243/first/1.0.0
然后您必须进入新的浏览器窗口
https://192.168.99.3:8243/
将浏览器设置为始终接受https证书
此后,在api控制台中的调用应该可以正常工作
答案 1 :(得分:0)
如果您有单独的商店和网关实例,请在浏览器中打开gateway:9443 / carbon并接受自签名证书。应该可以。