0

Springboot で DummyX509TrustManager を使用しようとしています。

そのために、次のクラスを作成します。

@Configuration
public class DummyComponent {

@PostConstruct
public void sslContextConfiguration() {
    try {
        SSLContext sslContext = SSLContext.getInstance("TLS");
        sslContext.init(null, new TrustManager[] { new DummyTrustManager() }, null);
        SSLContext.setDefault(sslContext);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

デフォルトの X509TrustManagerImpl が使用されているため、これは私のコードには何の影響もないようです。たぶん、別の方法でオーバーライドする必要がありますか?

解決:

@Configuration
public class MyConfig {

    @Bean
    public TomcatServletWebServerFactory containerFactory() {
        TomcatServletWebServerFactory  tomcat = new TomcatServletWebServerFactory ();
        tomcat.addAdditionalTomcatConnectors(createSslConnector());
        return tomcat;
    }

    private Connector createSslConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler();
        try {
            File keystore = new ClassPathResource(keystorepath).getFile();
            File truststore = new ClassPathResource(truststorepath).getFile();
            connector.setScheme("https");
            connector.setSecure(true);
            connector.setPort(port);

            protocol.setKeystoreFile(keystore.getAbsolutePath());
            protocol.setKeystorePass(keystorepassw);
            protocol.setKeyAlias(keystorealias);
            protocol.setSSLEnabled(true);

            protocol.setTruststoreFile(truststore.getAbsolutePath());
            protocol.setTruststorePass(truststorepassw);
            protocol.setClientAuth(Boolean.TRUE.toString());

            protocol.setTrustManagerClassName("pakage.DummyTrustManager");

            return connector;
        } catch (IOException ex) {
            throw new IllegalStateException("can't access keystore: [" + "keystore"
                + "] or truststore: [" + "keystore" + "]", ex);
        }
    }
}
4

0 に答える 0