首页 文章

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

提问于
浏览
0

我一直在尝试为我使用HTTPS协议的学校的Tomcat 8.5服务器配置SSL . 由于我们没有购买CA证书,我使用certbot获得免费证书 . 我做了一些配置,我的Tomcat在HTTP上提供但在HTTPS上还没有,并且日志上没有错误 . 这就是我做的 .

  • Tomcat 8.5安装在Windows Server 2012上 . 它在常规HTTP上为应用程序提供了2年的完美工作 .
    -Certbot不支持Windows,因此,我必须在VM上安装Ubuntu 16.04 . -I在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服务器的文件夹中 . -I在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

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

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

相关问题