Используйте хранилище доверенных сертификатов ОС вместо сборки Java в cacerts - PullRequest
0 голосов
/ 19 ноября 2018

Поскольку Java больше не будет получать автоматические обновления в будущем, важно использовать корневые сертификаты ОС вместо сертификатов с приложением 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?
...