Java-FAQ

1.javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure

接入CGI接口时会报“javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure”, 请安装JCE无限制权限策略文件;
JDK6的下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html
JDK7的下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
JDK8的下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
下载后解压,可以看到local_policy.jar和US_export_policy.jar以及readme.txt。如果安装的是JRE,将两个jar文件放到%JRE_HOME% \lib\security目录下覆盖原来的文件,如果安装的是JDK,将两个jar文件放到%JDK_HOME%\jre\lib\security目录下覆盖原来文件

2.https访问公钥问题

1.找到本机JDK安装目录,将 com.springsource.org.bouncycastle.jce-1.46.0.jar(该文件在当前目录下) 复制到 jre/lib/ext/ 目录下
2.用文本编辑器打开 /jre/lib/security/java.security (注意备份),找到以下代码:

1
2
3
4
5
6
7
8
9
10
security.provider.1=sun.security.provider.Sun
security.provider.2=sun.security.rsa.SunRsaSign
security.provider.3=sun.security.ec.SunEC
security.provider.4=com.sun.net.ssl.internal.ssl.Provider
security.provider.5=com.sun.crypto.provider.SunJCE
security.provider.6=sun.security.jgss.SunProvider
security.provider.7=com.sun.security.sasl.Provider
security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI
security.provider.9=sun.security.smartcardio.SunPCSC
security.provider.10=sun.security.mscapi.SunMSCAPI

将security.provider.2=org.bouncycastle.jce.provider.BouncyCastleProvider复制到security.provider.1=sun.security.provider.Sun 之后,从security.provider.2=sun.security.rsa.SunRsaSign开始往下每一行的数字都加1,如下:

1
2
3
4
5
6
7
8
9
10
11
security.provider.1=sun.security.provider.Sun  
security.provider.2=org.bouncycastle.jce.provider.BouncyCastleProvider
security.provider.3=sun.security.rsa.SunRsaSign
security.provider.4=sun.security.ec.SunEC
security.provider.5=com.sun.net.ssl.internal.ssl.Provider
security.provider.6=com.sun.crypto.provider.SunJCE
security.provider.7=sun.security.jgss.SunProvider
security.provider.8=com.sun.security.sasl.Provider
security.provider.9=org.jcp.xml.dsig.internal.dom.XMLDSigRI
security.provider.10=sun.security.smartcardio.SunPCSC
security.provider.11=sun.security.mscapi.SunMSCAPI

最后保存即可。

读后有收获可以请作者喝杯咖啡