Ошибка Tomcat SSL после настройки сертификата

840
Vitthal Shirke

После генерации сертификата и файла ключа pem с помощью openssl в Ubuntu 16.04 я настроил соединитель tomcat в файле server.xml, как показано ниже, но при запуске tomcat я получаю ошибку.

В браузере, когда я нажимаю этот URL-адрес: https: // localhost: 8443 / он выдает приведенную ниже ошибку:

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

Команда, используемая для генерации файла сертификата и ключа pem:

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

Разъем Tomcat имеет вид:

<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" /> 

Что-то другое:

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 

скриншот с ошибкой

журналы:

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
Какой у тебя актуальный вопрос? Seth 6 лет назад 0
После генерации сертификата и файла ключа pem; я настроил соединитель Tomcat в файле server.xml, как указано ниже; но, когда я запускаю tomcat и в браузере, если я нажимаю этот URL: https: // localhost: 8443 / он выдает эту ошибку: Этот сайт не может обеспечить безопасное соединение, localhost отправил недопустимый ответ. Vitthal Shirke 6 лет назад 0
Какая версия Tomcat? Возможно, вам потребуется указать полный путь к вашему сертификату и ключу. Вы выполнили следующие действия: https://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html? Gerard H. Pille 6 лет назад 0
на Ubuntu 16.04, в настоящее время я использую Tomcat 9, а также я попробовал на Tomcat 8. Я следовал за шагами, которые даны в ссылке выше также. Vitthal Shirke 6 лет назад 0
Я уже пробовал с полным путем для сертификата и ключа. Vitthal Shirke 6 лет назад 0

1 ответ на вопрос

0
dave_thompson_085

Вы должны и не установилиSSLEnabled="true" - см. Первый параграф раздела SSL документа Connector . Tomcat фактически прослушивает в режиме HTTP-not-S, поэтому, когда браузер отправляет SSL / TLS ClientHello Tomcat считает, что это недопустимый HTTP-запрос, и отправляет ответ об ошибке HTTP, который браузер считает недопустимым ответом SSL / TLS.

Я не знаю, включают ли пакеты Ubuntu APR (который использует стек OpenSSL) или «tomcat-native». Для Tomcat 8 файлы сертификатов и ключей в формате PEM будут работать только при использовании APR; для стека Java SSL / TLS (JSSE) необходимо использовать хранилище ключей в формате Java. Для Tomcat 8.5 или 9 он будет либо преобразован, либо по необходимости. Это также описано в док.

Обратите внимание, что для того, чтобы браузер доверял вашему подписанному сертификату, вам необходимо добавить его в доверенное хранилище этого браузера; как вы это сделаете, зависит от браузера и иногда от платформы, и я не использую браузеры в Ubuntu, поэтому я не смогу помочь с этой частью.

Эй, @VitthalShirke, ты, кажется, довольно новичок, так что, возможно, проверь [раздел справки о том, что делать, если кто-то ответит на твой вопрос] (https://superuser.com/help/someone-answers). Seth 6 лет назад 0

Похожие вопросы