關於JAVA 北向應用服務器開發,Demo證書問題:Demo工程無法對接電信平臺(證書問題)
將Demo工程導入Eclipse後,修改相應電信平臺的IP——BASE_URL,應用ID——appId,應用SERCRET——secret;運行出錯,問題顯示爲:
原因: 電信在2019-3月之後,將平臺的證書做了更換,所以在SSL校驗的時候,證書校驗不通過,導致瞭如上問題:
解決方法有兩種:
1、將ca.jks文件替換成電信平臺的,CA證書連接爲:https://download.csdn.net/download/qq_25062299/12498109。
2、取消證書校驗。方法如下:
打開HttpsUtil.java文件,在HttpsUtil 類中添加如下代碼:
private TrustManager truseAllManager = new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers()
{
return null;
}
@Override
public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType)
throws java.security.cert.CertificateException
{
}
@Override
public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType)
throws java.security.cert.CertificateException
{
}
};
將其中的
sc.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
替換爲:
sc.init(kmf.getKeyManagers(), new TrustManager[] { truseAllManager }, null);
如此,便可取消對服務器證書的校驗,在調試階段,通過此方法避免頻繁更換證書。