在我使用HTTPS协议的学校里,我一直在尝试为Tomcat8.5服务器配置SSL。由于我们没有购买带有CA的证书,所以我使用certbot获得免费证书。我做了一些配置,我的Tomcat在HTTP上服务,但还没有在HTTPS上服务,日志上没有错误。这就是我所做的。
WindowsServer2012上安装了WindowsTomcat8.5。两年来,它一直完美地在常规HTTP上为应用程序提供服务。
-Certbot不支持Windows,因此我不得不在VM上安装Ubuntu16.04。-I在Ubuntu上成功地安装了certboot。-I使用folowing命令获取我的certbot证书:
sudo certbot certonly --preferred-challenges http --manual -d theDomainOfMySchool.com-After成功地完成了ACME的挑战,我得到了以下4个.pem文件: cert1.pem、chain1.pem、fulchain1.pem和privkey1.pem。
-All 4文件是base64中的明文,就像我在这里粘贴的摘录一样:
-----BEGIN CERTIFICATE-----
MIIFYTCCBEmgAwIBAgISAwyxKh7NQWpNnH6w2enPbOlxMA0GCSqGSIb3DQEBCwUA
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD-After为复制/etc/letsencrypt/归档中的4个文件进行了一段时间的斗争,我将它们放置在中的Tomcat服务器文件夹中。-I将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" />-When我启动我的Tomcat,日志上没有错误。
-The服务器启动良好,在HTTP上服务没有问题。
-When我尝试通过HTTPS访问应用程序,我在浏览器上获得了ERR_CONNECTION_RESET。
我做错什么了。这种证书不适合这个Tomcat连接器吗?我错过任何配置了吗?
谢谢你们所有人。
发布于 2018-11-11 20:29:44
解决了!事实证明,我就像美元一样。我的server.xml上的配置是错误的。Http11NioProtocol的连接器应该使用端口443 (这是HTTPS的默认端口),而不是8443。在certboot上配置的其余部分和证书的请求都是可以的。
我认为使用8443是为了防止Tomcat在Apache或其他方面的背后。因为我直接使用Tomcat,而且只使用Tomcat,所以连接器端口应该是443。此外,确保防火墙允许443端口。
https://stackoverflow.com/questions/53251171
复制相似问题