使用OS证书信任库代替cacerts中的Java构建

时间:2018-11-19 14:24:41

标签: java operating-system certificate auto-update truststore

因为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代码之前执行。

对于此代码,我有以下问题?

  • 此代码有风险吗?
  • 为什么这不是Java中的默认设置(技术原因)?
  • Linux是否有平等的解决方案?

0 个答案:

没有答案