Ich habe gerade das Upgrade von SonarQube 5.3 auf 5.6 abgeschlossen. Ich habe meinen Schlüssel/Werte aus dem vorherigen sonar.properties kopiert. Sonar kann über HTTP starten, erzeugt jedoch Fehler beim Versuch, nur mit zuvor funktionierenden HTTPS zu starten.HTTPS nach Sonar-Upgrade fehlgeschlagen
Mein sonar.properties um HTTPS:
sonar.web.port=-1
sonar.web.context=/sonar
sonar.web.https.port=9000
sonar.web.https.keyAlias=<confirmed alias>
sonar.web.https.keyPass=<confirmed password>
sonar.web.https.keystoreFile=<confirmed file>
sonar.web.https.keystoreType=JKS
Der Fehler mit der obigen Konfiguration erzeugt:
2016.06.10 02:05:46 INFO web[o.s.p.ProcessEntryPoint] Starting web
2016.06.10 02:05:46 WARN web[o.s.p.ProcessEntryPoint] Fail to start web
java.lang.IllegalStateException: HTTP connectors are disabled
at org.sonar.server.app.TomcatConnectors.verify(TomcatConnectors.java:64) ~[sonar-server-5.6.jar:na]
at org.sonar.server.app.TomcatConnectors.configure(TomcatConnectors.java:54) ~[sonar-server-5.6.jar:na]
at org.sonar.server.app.EmbeddedTomcat.start(EmbeddedTomcat.java:59) ~[sonar-server-5.6.jar:na]
at org.sonar.server.app.WebServer.start(WebServer.java:42) [sonar-server-5.6.jar:na]
at org.sonar.process.ProcessEntryPoint.launch(ProcessEntryPoint.java:102) ~[sonar-process-5.6.jar:na]
at org.sonar.server.app.WebServer.main(WebServer.java:68) [sonar-server-5.6.jar:na]
Als Test wechselte ich wieder nur HTTP:
sonar.web.port=9000
sonar.web.context=/sonar
#sonar.web.https.port=9000
sonar.web.https.keyAlias=<confirmed alias>
sonar.web.https.keyPass=<confirmed password>
sonar.web.https.keystoreFile=<confirmed file>
sonar.web.https.keystoreType=JKS
Die Informationen aus diesem Protokoll:
2016.06.10 02:19:11 INFO web[o.s.s.a.TomcatAccessLog] Web server is started
2016.06.10 02:19:11 INFO web[o.s.s.a.EmbeddedTomcat] HTTP connector enabled on port 9000
2016.06.10 02:19:11 INFO web[o.a.c.h.Http11NioProcessor] Error parsing HTTP request header
Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.
java.lang.IllegalArgumentException: Invalid character (CR or LF) found in method name
at org.apache.coyote.http11.AbstractNioInputBuffer.parseRequestLine(AbstractNioInputBuffer.java:228) ~[tomcat-embed-core-8.0.30.jar:8.0.30]
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1010) ~[tomcat-embed-core-8.0.30.jar:8.0.30]
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:674) [tomcat-embed-core-8.0.30.jar:8.0.30]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500) [tomcat-embed-core-8.0.30.jar:8.0.30]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456) [tomcat-embed-core-8.0.30.jar:8.0.30]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_71]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_71]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.0.30.jar:8.0.30]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_71]
Was fehlt, was dazu führt, dass HTTPS nicht funktioniert?
Ich verstehe die Profis. Die Konfiguration von HTTPS auf Sonar ist jedoch nur optional, da es die meisten Fälle negiert. Was ist, wenn ich die Verbindung zwischen meinem Reverse-Proxy und meinem Anwendungsserver sichern möchte? – DuckieHo
@DuckieHo Wenn sich Ihr Webserver und Sonarqube auf demselben Server befinden, benötigen Sie ihn nicht, indem Sie die localhost-Verbindung verwenden. Wenn sich SonarQube auf einem anderen Server befindet und Sie der Verbindung zwischen diesen beiden Servern nicht vertrauen, fügen Sie einfach einen weiteren Webserver vor SonarQube hinzu. Mit dieser Konfiguration können Sie sogar nur eine Liste von IPs zulassen, die darauf zugreifen können. –
@EricHartmann Danke für den zusätzlichen Einblick. Die Trennung von Funktionen ist sinnvoll, aber viele Anwendungen in diesem Bereich unterstützen nativ HTTPS. Keine Sorge, nur etwas anderes zu konfigurieren. – DuckieHo