带有客户端证书的嵌入式 Jetty

2024-03-27

我想创建嵌入式 https 服务器,要求客户端提供证书,我正在使用它:http://www.smartjava.org/content/embedded-jetty-client-certificates http://www.smartjava.org/content/embedded-jetty-client-certificates

现在我的问题是,鉴于我的码头已嵌入,如何为我的代码提供密钥库和信任库文件。 我的意思是代码中的这些行:

// the keystore (with one key) we'll use to make the connection with the
    // broker
    private final static String KEYSTORE_LOCATION = "src/main/resources/client_keystore.jks";
    private final static String KEYSTORE_PASS = "secret";

    // the truststore we use for our server. This keystore should contain all the keys
    // that are allowed to make a connection to the server
    private final static String TRUSTSTORE_LOCATION = "src/main/resources/truststore.jks";
    private final static String TRUSTSTORE_PASS = "secret";

Thanks


上有很多 Jetty 嵌入式使用的例子github.com/eclipse/jetty.project https://github.com/eclipse/jetty.project/blob/jetty-8/example-jetty-embedded/

例子:像JettyXml.java https://github.com/eclipse/jetty.project/blob/jetty-8.1.15.v20140411/example-jetty-embedded/src/main/java/org/eclipse/jetty/embedded/LikeJettyXml.java#L86-L112- Jetty 8,不使用 XML,设置 SSL 连接器。

    SslSelectChannelConnector ssl_connector = new SslSelectChannelConnector();
    ssl_connector.setPort(8443);
    SslContextFactory cf = ssl_connector.getSslContextFactory();
    cf.setKeyStorePath(jetty_home + "/etc/keystore");
    cf.setKeyStorePassword("OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4");
    cf.setKeyManagerPassword("OBF:1u2u1wml1z7s1z7a1wnl1u2g");
    cf.setTrustStore(jetty_home + "/etc/keystore");
    cf.setTrustStorePassword("OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4");
    cf.setExcludeCipherSuites(
            new String[] {
                "SSL_RSA_WITH_DES_CBC_SHA",
                "SSL_DHE_RSA_WITH_DES_CBC_SHA",
                "SSL_DHE_DSS_WITH_DES_CBC_SHA",
                "SSL_RSA_EXPORT_WITH_RC4_40_MD5",
                "SSL_RSA_EXPORT_WITH_DES40_CBC_SHA",
                "SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA",
                "SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA"
            });
    ssl_connector.setStatsOn(false);
    server.addConnector(ssl_connector);
    ssl_connector.open();

    SslSocketConnector ssl2_connector = new SslSocketConnector(cf);
    ssl2_connector.setPort(8444);
    ssl2_connector.setStatsOn(false);
    server.addConnector(ssl2_connector);
    ssl2_connector.open();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带有客户端证书的嵌入式 Jetty 的相关文章

随机推荐