Как настроить сертификаты certbot на Tomcat для HTTPS? - PullRequest
0 голосов
/ 11 ноября 2018

Я пытался настроить SSL для сервера Tomcat 8.5 в школе, где я работаю, для использования протокола HTTPS. Поскольку у нас нет сертификата с CA, я использовал certbot, чтобы получить бесплатный. Я выполнил некоторую настройку, и мой Tomcat работает по HTTP, но еще не по HTTPS, и в журналах нет ошибок. Вот что я сделал.

- Tomcat 8.5 установлен на Windows server 2012. Он отлично работал в течение 2 лет, обслуживая приложения по обычному HTTP.
-Certbot не поддерживает Windows, поэтому мне пришлось установить Ubuntu 16.04 на виртуальную машину. -Я успешно установил certboot в Ubuntu. -Я использовал следующую команду для получения сертификатов certbot:

sudo certbot certonly --preferred-challenges http --manual -d theDomainOfMySchool.com

-После выполнения теста ACME я получил 4 файла .pem: cert1.pem, chain1.pem, fullchain1.pem и privkey1.pem.

-Все 4 файла представляют собой обычный текст в base64, как этот фрагмент, который я вставил сюда:

-----BEGIN CERTIFICATE-----
MIIFYTCCBEmgAwIBAgISAwyxKh7NQWpNnH6w2enPbOlxMA0GCSqGSIb3DQEBCwUA
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD

-После борьбы с разрешениями на копирование 4 файлов из / etc / letsencrypt / archive я поместил их в папку моего сервера Tomcat в Windows. -Я настроил Tomcat со следующими узлами на server.xml:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true" >
        <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
        <SSLHostConfig>
            <Certificate certificateKeyFile="conf/cert/certbot_gallery/privkey1.pem"
                         certificateFile="conf/cert/certbot_gallery/cert1.pem"
                         certificateChainFile="conf/cert/certbot_gallery/chain1.pem"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>

    <Connector port="80" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />

   <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

-Когда я запускаю свой Tomcat, в логах нет ошибок.

- Сервер запускается нормально и без проблем работает по HTTP.

-При попытке доступа к приложениям через HTTPS в браузере появляется сообщение ERR_CONNECTION_RESET.

Что я делаю не так. Разве этот вид сертификатов не подходит для этого разъема Tomcat? Мне не хватает какой-либо конфигурации?

Спасибо всем.

1 Ответ

0 голосов
/ 11 ноября 2018

Решено! Как оказалось, я как $. Конфигурация на моем server.xml неверна. Соединитель для Http11NioProtocol должен использовать порт 443 (который по умолчанию для HTTPS) вместо 8443. Остальная конфигурация и запрос сертификатов на certboot в порядке.

Я думаю, что использование 8443 на случай, если ваш Tomcat отстает от Apache или чего-то еще. Так как я использую напрямую и только Tomcat, порт разъема должен быть 443. Также убедитесь, что ваш брандмауэр поддерживает порт 443.

...