如何在Tomcat上为HTTPS配置certbot证书?

时间:2018-11-11 17:11:19

标签: ssl https tomcat8 certbot

我一直在尝试使用HTTPS协议在学校中为Tomcat 8.5服务器配置SSL。由于我们尚未通过CA购买证书,因此我使用certbot获得了免费证书。我进行了一些配置,并且Tomcat正在HTTP上运行,但尚未在HTTPS上运行,并且日志上没有错误。这是我所做的。

-Tomcat 8.5安装在Windows服务器2012上。它在使用常规HTTP的应用程序中运行2年已完美运​​行。
-Certbot不支持Windows,因此,我必须在VM上安装Ubuntu 16.04。 -我在Ubuntu上成功安装了certboot。 -我使用以下命令获取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

-经过一段时间的权限从/ etc / letsencrypt / archive复制这4个文件后,我将它们放在Windows中Tomcat服务器的文件夹中。 -我在server.xml上用以下节点配置了Tomcat:

<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 :(得分:0)

解决了!事实证明,我是as $。我的server.xml上的配置错误。 Http11NioProtocol的连接器应使用端口443(这是HTTPS的默认端口),而不是8443。 其余的配置和certboot上的certs请求都可以。

我认为使用8443是为了防止Tomcat落后于Apache或其他东西。由于我仅直接使用Tomcat,因此连接器端口应为443。 另外,请确保您的防火墙允许443端口。