在“
云栖问答 ”里看到有人提到在tomcat里配置https访问时,可能会遇到问题,所以写此帖。
环境:“经典网络”类型ECS,Debian 8系统,Tomcat 8,JDK 1.7
过程:
1. 安装相应的软件或组件,
t-get install default-jdk tomcat8 tomcat8-examples
2. 将在阿里云申请的,适合tomcat的证书文件上传到合适的目录,如本例是保存在:/etc/tomcat8/cert/213949634960268.pfx
3. 编辑 tomcat 的配置文件 /etc/tomcat8/server.xml ,添加相应的https访问配置内容,如本例约在第92号添加了:
<Connector port="8443"
其中关键是port,keystoreFile 和 keystorePass,请根据自己的实际情况修改。因为在Debian里的tomcat默认运行账户是tomcat8,是无权限直接使用443端口的,所以本例的port用8443
protocol="HTTP/1.1"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="/etc/tomcat8/cert/213949634960268.pfx"
keystoreType="PKCS12"
keystorePass="213949634960268"
clientAuth="false"
SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
/>
4. 重启tomcat服务
systemctl restart tomcat8
6. 在火狐浏览器访问,如
https://yun.anqun.org:8443,测试正常
参考:
1.
https://tomcat.apache.org/tomcat-8.0-doc/ssl-howto.html
2.
https://confluence.atlassian.com/confkb/permission-denied-error-when-binding-a-port-290750651.html
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
您在阿里云ECS上配置Tomcat 8以支持HTTPS访问的过程看起来是正确的,这里有几个点可以确认和优化:
权限问题:您提到默认的tomcat8用户无权直接使用443端口,因此您将HTTPS端口设置为8443。如果您确实需要使用443端口,可以通过修改端口权限解决。一种方法是将443端口的监听权限赋予tomcat8用户,这通常涉及到修改selinux或防火墙规则(如果适用),以及可能的用户权限调整。但请注意,直接操作系统权限和端口服务应谨慎进行,确保不会影响系统的安全性和稳定性。
证书路径与权限:确保上传的证书文件路径正确无误,并且tomcat8用户对该证书文件有读取权限。如果权限不足,可能会导致Tomcat启动时无法加载证书。
SSL/TLS协议版本:您的配置中指定了SSLProtocol="TLSv1 TLSv1.1 TLSv1.2"
,考虑到安全性,建议仅启用TLSv1.2及更高版本,因为TLSv1和TLSv1.1已不再被认为是安全的。根据最新的安全实践,应该避免使用这些旧版本。
日志检查:如果在配置后遇到任何问题,记得查看Tomcat的日志文件(通常位于/var/log/tomcat8/
目录下),如catalina.out,它会记录启动过程中的错误信息,有助于快速定位问题。
测试与验证:您已经通过火狐浏览器进行了测试,这是个好习惯。同时,也可以考虑使用SSL Labs的在线测试工具(https://www.ssllabs.com/ssltest/)来进一步验证您的HTTPS配置是否安全、高效。
性能与监控:虽然不是配置步骤的一部分,但部署HTTPS后,考虑使用阿里云的云监控服务来监控Tomcat服务的运行状态和性能,确保HTTPS服务稳定可靠。
安全组设置:别忘了在ECS实例的安全组规则中开放8443端口(或您选择的HTTPS端口),以便外部能够访问到您的服务。
整体来看,您遵循的步骤是标准的HTTPS配置流程,只需根据实际情况微调并注意上述细节即可。