2014-09-02 5 views
0

Je veux créer serveur intégré https qui a nécessité les clients de présenter un certificat et j'utilise ceci: http://www.smartjava.org/content/embedded-jetty-client-certificatesEMBEDDED jetée avec des certificats clients

Maintenant, ma question est que comment puis-je fournir keystore et le fichier truststore pour mon code donné que ma jetée est emedded. Je veux dire ces lignes dans le code:

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

Merci

Répondre

0

Il existe de nombreux exemples d'utilisation intégrée jetée sur github.com/eclipse/jetty.project

Exemple: LikeJettyXml.java - jetée 8, sans XML utilisé, la mise en place d'un Connecteur 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

Merci! En fait, ma question est que dois-je vraiment générer des clés? En fait, je suis complètement débutant en ce qui concerne SSL et https. – user3409650

+0

Bonjour encore une fois, ma question est qu'après avoir appliqué ces changements, que se passerait-il? quand je passe l'URL avec https, l'URL devrait être ouverte? En fait, je suis tellement débutant à ce sujet, et je ne sais pas ce que seraient les changements? - – user3409650

+0

Le fichier de clés et vos certificats sont nécessaires. Ils peuvent être auto-signés ou achetés auprès d'une autorité de certification enregistrée. Mais de toute façon, ils sont requis pour SSL/TLS (et NPN/SPDY/HTTP2) –

Questions connexes