Je veux configurer mon Spring Spring @mvc STRUT> STUCT'S pour générer des touches, des certificats, etc., p> F: \ jdk1.6.0_23 \ bin> BeyTool -genkey -keystore KeyStore_Client -Alias -Alias - Nom de nom "CN = localhost, ou = dev, o = mybusiness, l = colombo, S = Colombo, S = Westen, c = SL " F: \ jdk1.6.0_23 \ bin> BeyTool -export -export -Elias ClientKey -RFC -KeyStore KeyStore_Client> Client.Cert
F: \ jdk1.6.0_23 \ bin> BeyTool -Eltool -Eltool -export -Elias ServerKey -RFC -keyStore KeyStore_Server> Server.Cert P> // Importation de certificats à des fidèles correspondants: strong> p > F: \ jdk1.6.0_23 \ bin> Tool-Import -Alport -Alias ClientCert -File Client.cert -keyt -keytstore Trustore_Server
F: \ jdk1.6.0_23 \ bin> BeyTool -Import -Alport ServerCert -File ServerCert -Cert -keyStore TrustTore_Client P> // Configurations Resttemplate de ressort stress> P> P> P> P> P> P> P> P> P> P> P> P> P> P>
P>
F: \ jdk1.6.0_23 \ bin> keytool -genkey -keystore keyStore_server -alias serverkey -dname "cn = localhost, ou = dev, o = mybusiness, l = colombo, s = westen, c = sl" p> ResponseEntity<User> rECreateUser = restTemplate.postForEntity("https://127.0.0.1:8443/skeleton-1.0/login", user, User.class);
4 Réponses :
Ceci est parce que le certificat SSL du service que vous appelez n'est pas signé par une autorité de certification de confiance. La solution de contournement consiste à importer le certificat dans le magasin de fiducie de certificat (CaCerts) de votre JRE.
Une fois que vous avez un fichier .cer exécuté la commande ci-dessous p>
Est-il possible de maintenir le client client au niveau du serveur d'applications sans configurer au niveau Java?
Vous pouvez importer le certificat dans un fichier personnalisé Trust Store, puis la spécifier comme décrit ici: Stackoverflow.com/a/18767045/1575914 Ou vous pouvez expérimenter des choses décrites ici Stackoverflow.com/a/6755459/157591
Vous pouvez configurer la plaque de repos avec le HTTPComponentsClienthttprectesFactory à partir de Apache httpComponents httpClient , qui soutient définitivement SSL. P>
ref: repose (Resttemplate) au support de la bibliothèque de printemps Protocole HTTPS? P>
variante pour la chaussure à ressort:
Ajouter une dépendance: P>
server: ssl: enabled: true key-store: /path/to/key.keystore key-store-password: password key-alias: alias trust-store: /path/to/truststore trust-store-password: password
Fournissez un haricot de repose-dos: p>
li>
ol>
@Bean
private RestTemplate restTemplate() {
SSLContext sslContext = buildSslContext();
SSLConnectionSocketFactory socketFactory = new SSLConnectionSocketFactory(sslContext);
HttpClient httpClient = HttpClients.custom()
.setSSLSocketFactory(socketFactory)
.build();
HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(httpClient);
return new RestTemplate(factory);
}
private SSLContext buildSslContext() {
try {
char[] keyStorePassword = sslProperties.getKeyStorePassword();
return new SSLContextBuilder()
.loadKeyMaterial(
KeyStore.getInstance(new File(sslProperties.getKeyStore()), keyStorePassword),
keyStorePassword
).build();
} catch (Exception ex) {
throw new IllegalStateException("Unable to instantiate SSL context", ex);
} finally {
sslProperties.setKeyStorePassword(null);
sslProperties.setTrustStorePassword(null);
}
}
Vous pouvez définir quelques propriétés système pour sélectionner la confiance utilisée dans les clients
System.setProperty("javax.net.ssl.trustStorePassword", "mypassword"); System.setProperty("javax.net.ssl.keyStoreType", "jks"); System.setProperty("javax.net.ssl.trustStore", "truststore_client");