Tomcat-SSL-Fehler nach dem Einrichten des Zertifikats

719
Vitthal Shirke

Nach der Generierung der Zertifikats- und Schlüssel-Pem-Datei mit openssl auf Ubuntu 16.04 habe ich den Tomcat-Connector in der Datei server.xml wie folgt konfiguriert. Wenn ich jedoch Tomcat starte, erhalte ich einen Fehler.

Wenn ich im Browser auf diese URL klicke: https: // localhost: 8443 / gibt es den folgenden Fehler:

This site can’t provide a secure connection localhost sent an invalid response. 

Der Befehl zum Generieren der PEM-Datei cert und key lautet wie folgt:

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes 

Tomcat Connector ist wie folgt:

<Connector port="8443" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" SSLEngine="on" SSLCertificateFile="conf/cert.pem" SSLCertificateKeyFile="conf/key.pem" /> 

Etwas anderes:

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes  Generating a 4096 bit RSA private key ..........................................................................  writing new private key to 'key.pem'  Country Name (2 letter code) [AU]:IN State or Province Name (full name) [Some-State]:MH Locality Name (eg, city) []:Pune Organization Name (eg, company) [Internet Widgits Pty Ltd]:softdel Organizational Unit Name (eg, section) []:iot Common Name (e.g. server FQDN or YOUR name) []:localhost Email Address []:xyz@gmail.com 

screenshot showing error

Protokolle:

23-Jun-2018 13:29:35.460 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"] 23-Jun-2018 13:29:35.483 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8443"] 23-Jun-2018 13:29:35.488 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"] 23-Jun-2018 13:29:35.490 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 5150 ms 23-Jun-2018 13:29:35.656 INFO [http-nio-8443-exec-1] org.apache.coyote.http11.Http11Processor.service Error parsing HTTP request header Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level. java.lang.IllegalArgumentException: Invalid character found in method name. HTTP method names must be tokens at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:410) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:291) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:754) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1376) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748)  23-Jun-2018 13:29:35.659 INFO [http-nio-8443-exec-2] org.apache.coyote.http11.Http11Processor.service Error parsing HTTP request header Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level. java.lang.IllegalArgumentException: Invalid character found in method name. HTTP method names must be tokens at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:410) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:291) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:754) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1376) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748)  23-Jun-2018 13:29:35.720 INFO [http-nio-8443-exec-3] org.apache.coyote.http11.Http11Processor.service Error parsing HTTP request header Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level. java.lang.IllegalArgumentException: Invalid character found in method name. HTTP method names must be tokens at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:410) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:291) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:754) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1376) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748)  2018-06-23 13:29:42 [http-nio-8443-exec-17] INFO org.apache.jsp.index_jsp - - Entered page login 
2
Was ist deine eigentliche Frage? Seth vor 5 Jahren 0
Nach dem Generieren der Zertifikat- und Schlüssel-PEM-Datei; Ich bin konfiguriert Tomcat Connector in Server.xml-Datei wie unten angegeben; Wenn ich jedoch den Kater starte und im Browser die folgende URL drücke: https: // localhost: 8443 / gibt diese Fehlermeldung aus: Diese Site kann keine sichere Verbindung bereitstellen. localhost hat eine ungültige Antwort gesendet. Vitthal Shirke vor 5 Jahren 0
Welche Version von Tomcat? Möglicherweise müssen Sie den vollständigen Pfad des Zertifikats und des Schlüssels angeben. Haben Sie die folgenden Schritte ausgeführt: https://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html? Gerard H. Pille vor 5 Jahren 0
am ubuntu 16.04, derzeit verwende ich tomcat 9 sowie probierte ich auch tomcat 8 aus. Ich habe auch die oben genannten Schritte befolgt. Vitthal Shirke vor 5 Jahren 0
Ich habe bereits mit vollem Pfad für Zertifikat und Schlüssel versucht. Vitthal Shirke vor 5 Jahren 0

1 Antwort auf die Frage

0
dave_thompson_085

Sie müssen und haben nicht festgelegtSSLEnabled="true" - siehe den ersten Absatz des SSL-Abschnitts des Connector-Dokuments . Tomcat hört tatsächlich im HTTP-not-S-Modus zu. Wenn der Browser SSL / TLS-ClientHello sendet, hält Tomcat dies für eine ungültige HTTP-Anforderung und sendet eine HTTP-Fehlerantwort zurück, die nach Ansicht des Browsers eine ungültige SSL / TLS-Antwort ist.

Ich weiß nicht, ob die Ubuntu-Pakete APR (der den OpenSSL-Stack verwendet) oder auch "tomcat-native" enthalten. Bei Tomcat 8 funktionieren die Zertifikats- & Schlüsseldateien im PEM-Format nur, wenn APR verwendet wird. Für den Java-SSL / TLS-Stack (JSSE) müssen Sie einen Keystore im Java-Format verwenden. Für Tomcat 8.5 oder 9 wird dies entweder benötigt und bei Bedarf intern konvertiert. Dies ist auch im Dokument beschrieben.

Damit ein Browser Ihrem selbstsignierten Zertifikat vertrauen kann, müssen Sie ihn dem Truststore dieses Browsers hinzufügen. Wie Sie dies tun, hängt vom Browser und manchmal von der Plattform ab. Ich verwende unter Ubuntu keine Browser, daher kann ich möglicherweise nicht bei diesem Teil helfen.

Hey @VitthalShirke, du scheinst ziemlich neu zu sein, also schau mal in der [Hilfe-Sektion, was zu tun ist, wenn jemand deine Frage beantwortet] (https://superuser.com/help/someone-answers). Seth vor 5 Jahren 0