因为Java将来将不再接收自动更新,所以使用OS的根证书而不是与应用程序捆绑的Java VM的证书很重要。通过以下代码,我可以使用操作系统的证书:
String type;
if( OS.isWindows() ) {
type = "Windows-ROOT"; // provider SunMSCAPI
} else if( OS.isMac() ) {
type = "KeychainStore"; // provider Apple
} else {
type = null;
}
try {
if( type != null ) {
KeyStore.getInstance( type ); // throw an exception if not available
System.setProperty( "javax.net.ssl.trustStoreType", type );
System.setProperty( "javax.net.ssl.trustStore", "NONE" );
}
} catch( Throwable th ) {
th.printStackTrace();
}
此代码必须在运行任何SSL代码之前执行。
对于此代码,我有以下问题?