Tomcat安装SSL证书

前两天看到一篇文章,介绍了两个申请SSL证书的网站,具体是哪两个网站已经不记得了,只记得一个要钱,一个免费。

 

于是我就萌发了给自己的网站加装个SSL证书的念头,正好26号晚上的时候有兴致,也有点时间,就开始搞起。

 

自己之前也没接触过,身边也没有有这方面经验的,只好自己百度。。。

 

结果百度了半天,才发现,,,,,,在腾讯云里面就可以申请SSL证书,而且还是免费的

 

▍前提条件

 

1、我用的是腾讯买的域名和服务器(如需购买参考记录||记第一次建站全过程),所以可以申请免费的SSL证书,其他地方买的域名不知道可不可以;

 

2、云服务器上的Tomcat要是8.5或者更高版本(低版本的server.xml配置的内容有些微的不一样,虽然就是几个属性的名称不同,但是我没试过,所以这里要求8.5或者更高版本);

 

3、你的网站能通过http+域名正常访问。

 

具备了前提条件就可以跟着我完成SSL的安装,下面进行一步步地演示。

 

 

▍申请并下载SSL证书

 

1、前往腾讯云官网(https://cloud.tencent.com/),登录,在云产品下找到“SSL证书管理”,点进去;

 

 

 

2、点击“申请证书”;

 

 

 

3、在跳出来的弹窗中点确认;

 

 

 

4、填写域名、邮箱以及备注名,至于私密钥匙,可填可不填,如果你填了,那就要自己把这个秘钥记住,如果你没填,系统会给你自动生成一个,这里我没填,下一步;

 

 

 

5、因为我已经我的这个域名已经开启了云解析服务,所以就选第一个自动DNS验证(后面两个还不知道怎么用);

 

 

 

6、确认申请;

 

 

 

7、查看证书详情(此时证书还是待验证);

 

 

 

8、等待证书验证,在等待过程中建议不要关闭查看证书详情页,免得很快又要重新打开(一般等待一会儿就验证完成,我这次只用了10分钟就搞定了);

 

9、验证完成后,会给你填写的邮箱发一封验证成功邮件,同时也会给你的手机上发一份通知;

 

 

 

10、再次回到证书详情页,刷新一下,发现信息更新了;

 

 

 

11、点击“下载”按钮下载SSL证书,下载的是一个压缩包;

  

 

12、把压缩包解压,解压之后是这个样子的;

 

 

 

13、此时SSL证书就到手了,就可以开始安装部署工作了。

 

 

▍安装SSL证书

 

1、打开Tomcat文件夹,里面有两个文件,第一个jks文件就是证书,那个txt文件是系统生成的密钥,如果你之前在填写证书的时候自己填了秘钥,那么文件夹里没有这个文件了;

 

 

 

2、把.jks文件复制到你的云服务器上的Tomcat下的conf文件中(我已经申请了4个证书,所以conf文件夹中有4个jks文件);

 

 

 

3、配置server.xml文件,需要修改三个地方;

 

(1)把

改成

其中第一个80端口是为HTTP(HyperText Transport Protocol)即超文本传输协议开放的,此为上网冲浪使用次数最多的协议,第二个443端口是SSL的专用端口;

 

(2)把

改成

使用443端口的理由同上;

 

(3)把

改成

首先去掉注释,然后certificateKeystoreFile属性是让你告诉服务器需要哪个SSL证书,后面就填复制过去的那个jks文件的名字(记得带上jks后缀),然后加上certificateKeystorePassword这个属性,后面的属性值填秘钥,如果你自己填了秘钥,那就填你写的那个秘钥,如果你自己没填秘钥,那就把

这个文件里的字符串复制过来填到这

 

此时server.xml的配置工作就完成了。

 

4、尝试使用https://+域名来访问,如果显示找不到页面,那么就应该是你的云服务器的443端口被防火墙拦截了,此时就需要打开443端口。

 

 

▍在云服务器上开启SSL443端口

 

1、依次点击“开始”——“控制面板”——“系统和安全”——“Windows防火墙”;

 

2、选择打开或关闭防火墙;

 

 

 

3、启用Windows防火墙;

 

 

 

4、此时防火墙处于开启状态,选择“高级设置”;

 

 

 

5、依次点击“入站规则”——“新建规则”;

 

6、选择“端口”,下一步;

 

 

 

7、选择“特定本地端口”,然后在后面的输入框中填443(当然选择所有本地端口也可以开启443端口,但是端口全部开放可能会造成一定隐患,不建议),下一步;

 

 

 

8、选择“允许连接”,下一步;

 

 

 

9、默认三个全部勾选,下一步;

 

 

 

10、填写规则名称,建议填一个容易辨识的名字,描述可填可不填,点击完成;

 

 

 

11、此时端口启用成功。

 

 

 

▍通过https访问

 

经过我的反复摸索,终于成功的访问到了我的网站。

 

 

 

 

▍我是尾巴

 

安装完成了之后,虽然https能访问了,但是不知道为什么,http访问不到了。

 

在网上找了很久,却没有一个人遇到这个问题,简直。。。

 

虽然SSL证书安装完成了,但是还是没有达到我的完整目标,后面会继续探索,完成以下两个任务:

 

1、实现http自动跳转到https;

 

2、在同一个tomcat下安装多个SSL证书。
 

 

▍后续

 

上次在配置SSL证书后,http便不能访问了,虽然至今依然不知其中缘由,但是我将服务器重装系统,重新配置JDK、Tomcat,重新安装SSL证书后,http和https都能访问了,总算是把问题给解决了。

 

 

1、实现http自动跳转到https:在</welcome-file-list>标签后添加代码:

 

<login-config> 
	<!-- Authorization setting for SSL --> 
	<auth-method>CLIENT-CERT</auth-method> 
	<realm-name>Client Cert Users-only Area</realm-name> 
</login-config> 
<security-constraint> 
	<!-- Authorization setting for SSL --> 
	<web-resource-collection > 
		<web-resource-name >SSL</web-resource-name> 
		<url-pattern>/*</url-pattern> 
	</web-resource-collection> 
	<user-data-constraint> 
		<transport-guarantee>CONFIDENTIAL</transport-guarantee> 
	</user-data-constraint> 
</security-constraint>

 

 

这样就实现了http自动跳转至https。

 

2、配置多个SSL证书:我在server.xml中配了多个SSLHostConfig,结果只有第一个成功访问到了https,后面配的都提示证书风险。

 

 

后来查阅了一下别人写的文章,似乎是因为我这种是单域名SSL证书,而一个Tomcat只能支持一个SSL证书,只有使用通配型或者多域名型等类型的SSL证书才能实现在同一个IP下为多个域名配置SSL证书的效果。

 

关注公众号:爱唱歌的蜗牛先生

 

 

  • 25
    点赞
  • 110
    收藏
    觉得还不错? 一键收藏
  • 24
    评论
你可以按照以下步骤来在 Tomcat 9 上安装 SSL 证书和使用 OpenSSL 进行配置: 1. 首先,确保你已经安装了 OpenSSL 工具。 2. 使用 OpenSSL 生成自签名证书: ``` openssl req -newkey rsa:2048 -nodes -keyout server.key -x509 -days 365 -out server.crt ``` 这会生成一个私钥文件 `server.key` 和一个自签名证书文件 `server.crt`。 3. 将生成的私钥和证书文件复制到 Tomcat 的 keystore 目录下: ``` cp server.key /path/to/tomcat/conf/ cp server.crt /path/to/tomcat/conf/ ``` 4. 打开 Tomcat 的 `server.xml` 文件: ``` vi /path/to/tomcat/conf/server.xml ``` 5. 找到以下配置段: ```xml <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true"> <SSLHostConfig> <Certificate certificateKeystoreFile="conf/localhost-rsa.jks" type="RSA" /> </SSLHostConfig> </Connector> ``` 6. 修改为以下配置段,指定你的证书和私钥文件的路径和密码: ```xml <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true"> <SSLHostConfig> <Certificate certificateKeyFile="conf/server.key" certificateFile="conf/server.crt" certificateKeyPassword="your_password" /> </SSLHostConfig> </Connector> ``` 替换 `your_password` 为你设置的私钥密码。 7. 保存并关闭 `server.xml` 文件。 8. 重新启动 Tomcat 服务器。 现在,你的 Tomcat 服务器应该已成功安装SSL 证书。请注意,自签名证书在浏览器中会被标记为不受信任,如果你需要使用受信任的证书,你可以从证书颁发机构(CA)购买并安装

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值