2014-09-02 3 views
0

Я хочу создать встроенный сервер по протоколу HTTPS, которые требуют клиентов представить сертификат, и я использую это: http://www.smartjava.org/content/embedded-jetty-client-certificatesEmbedded Jetty с клиентскими сертификатами

Теперь мой вопрос заключается в том, что, как я могу предоставить доступ к хранилищу ключей и файл доверенных сертификатов для моих при условии, что мой причал выдается. Я имею в виду эти строки в коде:

// 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"; 

Благодарности

ответ

0

Есть многочисленные примеры Jetty встроенного использования на github.com/eclipse/jetty.project

Пример: LikeJettyXml.java - 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(); 
+0

Спасибо! на самом деле мой вопрос в том, что мне действительно нужно сгенерировать некоторые ключи? На самом деле я совершенно новичок в отношении ssl и https. – user3409650

+0

Здравствуйте, еще раз, мой вопрос в том, что после применения этих изменений произойдет что-то? когда я передаю URL-адрес с https, URL-адрес должен быть открыт? На самом деле, я так начинаю в этом отношении, и я не знаю, что изменит? - – user3409650

+0

Хранилище ключей и ваши сертификаты необходимы. Они могут быть самоподписаны или куплены через зарегистрированный центр сертификации (CA). Но в любом случае они необходимы для SSL/TLS (и NPN/SPDY/HTTP2) –

Смежные вопросы