2014-09-02 2 views
0

클라이언트 인증서와 부두 내장하고 나는이 사용하고 있습니다 : 이제 http://www.smartjava.org/content/embedded-jetty-client-certificates내가 인증서를 제시하는 클라이언트를 필요 포함 된 HTTPS 서버를 만들

내 질문은 어떻게위한 키 스토어 및 truststore 파일을 제공 할 수있는 내 나의 부두가 emedded하게되면서 코드. 나는 코드의 다음 줄 의미 :

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

github.com/eclipse/jetty.project

예에 부두 내장 된 사용의 많은 사례가 있습니다 LikeJettyXml.java - 부두 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

안녕하세요, 제 질문은 이러한 변경 사항을 적용한 후 일어날 일입니다. https로 URL을 전달하면 URL을 열어야합니까? 실제로 나는 그것에 대해 초보자이며, 나는 변화가 무엇인지 모른다. - – user3409650

+0

키 스토어 및 인증서가 필요합니다. 인증서는 자체 서명하거나 등록 된 CA (Certificate Authority)를 통해 구입할 수 있습니다. 그러나 어느 쪽이든 그들은 SSL/TLS (그리고 NPN/SPDY/HTTP2)에 필요합니다. –