Aktivieren Sie HTTPS mit einem selbst-signierten Zertifikat im Frühjahr Boot 2.0
Bin ich nach dieses tutorial zu HTTPS aktivieren im Frühjahr Boot 2.0 mit einem selbst signierten Zertifikat nur für Testzwecke. In Zusammenfassung, das tutorial umfasst folgende Schritte:
1.Erzeugen der keystore mit keytool
.
keytool -genkey -alias tomcat
-storetype PKCS12 -keyalg RSA -keysize 2048
-keystore keystore.p12 -validity 3650
2.Aktivieren Sie den HTTPS-im Frühjahr Starten, indem Sie einige Eigenschaften in der application.properties
Datei.
server.port: 8443
server.ssl.key-store: keystore.p12
server.ssl.key-store-password: mypassword
server.ssl.keyStoreType: PKCS12
server.ssl.keyAlias: tomcat
3.Umleiten von HTTP auf HTTPS (optional). Ich ignorierte diesen Teil.
Aber wenn ich anfange mit meiner Bewerbung, bekam ich diese Fehlermeldung:
org.apache.catalina.LifecycleException: Failed to start component [Connector[HTTP/1.1-8443]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167) ~[tomcat-embed-core-8.5.28.jar:8.5.28]
at org.apache.catalina.core.StandardService.addConnector(StandardService.java:225) ~[tomcat-embed-core-8.5.28.jar:8.5.28]
at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.addPreviouslyRemovedConnectors(TomcatWebServer.java:255) [spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:197) [spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.startWebServer(ServletWebServerApplicationContext.java:300) [spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.finishRefresh(ServletWebServerApplicationContext.java:162) [spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:552) [spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140) [spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752) [spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:388) [spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:327) [spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1246) [spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1234) [spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at epic.gwdg.restgraph.RestgraphApplication.main(RestgraphApplication.java:10) [classes/:na]
Caused by: org.apache.catalina.LifecycleException: Protocol handler start failed
at org.apache.catalina.connector.Connector.startInternal(Connector.java:1021) ~[tomcat-embed-core-8.5.28.jar:8.5.28]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ~[tomcat-embed-core-8.5.28.jar:8.5.28]
... 13 common frames omitted
Caused by: java.lang.IllegalArgumentException: Private key must be accompanied by certificate chain
at org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:116) ~[tomcat-embed-core-8.5.28.jar:8.5.28]
at org.apache.tomcat.util.net.AbstractJsseEndpoint.initialiseSsl(AbstractJsseEndpoint.java:87) ~[tomcat-embed-core-8.5.28.jar:8.5.28]
at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:225) ~[tomcat-embed-core-8.5.28.jar:8.5.28]
at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:1150) ~[tomcat-embed-core-8.5.28.jar:8.5.28]
at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:591) ~[tomcat-embed-core-8.5.28.jar:8.5.28]
at org.apache.catalina.connector.Connector.startInternal(Connector.java:1018) ~[tomcat-embed-core-8.5.28.jar:8.5.28]
... 14 common frames omitted
Caused by: java.lang.IllegalArgumentException: Private key must be accompanied by certificate chain
at java.base/java.security.KeyStore.setKeyEntry(KeyStore.java:1170) ~[na:na]
at org.apache.tomcat.util.net.jsse.JSSEUtil.getKeyManagers(JSSEUtil.java:257) ~[tomcat-embed-core-8.5.28.jar:8.5.28]
at org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:114) ~[tomcat-embed-core-8.5.28.jar:8.5.28]
... 19 common frames omitted
2018-03-16 16:42:30.917 INFO 970 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat]
2018-03-16 16:42:30.931 INFO 970 --- [ main] ConditionEvaluationReportLoggingListener :
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2018-03-16 16:42:30.933 ERROR 970 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter :
***************************
APPLICATION FAILED TO START
***************************
Description:
The Tomcat connector configured to listen on port 8443 failed to start. The port may already be in use or the connector may be misconfigured.
Action:
Verify the connector's configuration, identify and stop any process that's listening on port 8443, or configure this application to listen on another port.
2018-03-16 16:42:30.934 INFO 970 --- [ main] ConfigServletWebServerApplicationContext : Closing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@58ce9668: startup date [Fri Mar 16 16:42:26 CET 2018]; root of context hierarchy
2018-03-16 16:42:30.936 INFO 970 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Unregistering JMX-exposed beans on shutdown
Process finished with exit code 1
Im Grunde lautet die Botschaft:
Private Schlüssel muss begleitet werden durch die Zertifikat-Kette.
Dies ist ein selbst-signiertes Zertifikat, so dass es, natürlich, nicht über die Vertrauenswürdige Kette. Wie kann ich es beheben?
Hier ist meine aktuelle application.properties
Datei:
server.port=8443
server.ssl.enabled=true
server.ssl.key-store=classpath:keystore.p12
server.ssl.key-password=123456
server.ssl.key-store-type=PKCS12
server.ssl.key-alias=tomcat
Danke Ihnen so sehr für Ihre Hilfe.
InformationsquelleAutor Triet Doan | 2018-03-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist, dass in den generierten keystore Sie noch nicht über ein Schlüsselpaar, so ist es kein private key-das ist, weil Ihr mit der option -genkey müssen Sie es ändern, indem Sie die option -genkeypair :
Also ich denke, das sollte funktionieren :
In spring-boot-Konfiguration ändern ":" durch "=" und fügen Sie den Pfad zu eurem keystore-ich nehme an, dass Ihr keystore.p12 ist in Ihrem Ressourcen-Ordner so :
Ich update meine Antwort ,in Ihren Federeigenschaften conf ändern " : "durch "=" und fügen den Pfad zum keystore für die param " - server.ssl.key-store"
In der Tat, benutze ich "=" und "classpath" in meiner Konfiguration. Ich habe versucht, beide Weg, und der Fehler ist immer noch da...
Ich update meine Antwort gibt es wieder ein anderes problem wieder ändern " - server.ssl.keyStoreType" = PKCS12 von "server.ssl.- Taste-speichern-type=PKCS12"
Ich habe gerade aktualisiert meine Frage, um meine Konfiguration. Ich merke, dass das Passwort-Feld sollte
key-store-password
wie bei Ihnen. Ich änderte es, und es funktioniert!!! Sie können aktualisieren Sie Ihre Antwort (key-alias
). Ich werde markieren Sie Ihre Antwort als korrekt. Danke 🙂InformationsquelleAutor E2rabi
War ich immer dieses schreckliche
Private key must be accompanied by certificate chain
Fehler als auch auf meinem Spring-Boot-Anwendung mit einem eingebetteten Tomcat-server. Es machte mich wahnsinnig.Es stellt sich heraus, ein einfacher Tippfehler war mein problem:
Also die Fehlermeldung ist nicht hilfreich an alle für diesen Fall. Ich hoffe, dies hilft jemand anderes. Nur sicher sein, stellen Sie sicher, dass Sie setzen die richtigen Passwörter (Schlüssel vs keystore) an der richtigen Stelle. Das gleiche Problem kann passieren, in einer properties-basierten setup - es hängt davon ab, was man arbeitet.
InformationsquelleAutor jocull
1.verwenden Sie "-genkeypair"
InformationsquelleAutor Frank Liu
Ich hatte das gleiche problem. Ich habe die änderungen von der 2. Antwort. Aber problem war nicht Weg.
Nach allem, was ich gemacht habe, ich habe gerade meine keystore.p12 Zertifikat pom.xml in profile Abschnitt
InformationsquelleAutor JenkaBY