2016-06-10 19 views
3

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?

Antwort

5

Die Unterstützung von HTTPS wurde in Version 5.5 entfernt. Die Eigenschaften sonar.web.https. * Sind in conf/sonar.properties nicht mehr vorhanden. Siehe http://docs.sonarqube.org/display/SONAR/Release+5.5+Upgrade+Notes und https://jira.sonarsource.com/browse/SONAR-7411. Aus Sicherheitsgründen sollte stattdessen ein Reverse-Proxy verwendet werden.

+0

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

+1

@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. –

+0

@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