一、首先要先注册一个域名,可在阿里云万网进行注册
二、对域名进行解析,使用阿里云的DNS解析即可
1、域名购买成功后,进入域名控制台,点击解析
2、选择快速解析,填写你的公网IP,等一小会儿域名即可解析成功
三、购买CA证书,阿里云上有免费的CA证书
1、在安全(云盾)中选择CA证书服务
2、选择右上角的购买证书
进来默认是5000一年的专业版证书
这里我们选免费的DV证书就可以
购买成功后提交审核
下图这三点非常重要:选择DNS, 勾选证书绑定, 选择系统生成CSR
提交成功后等待十分钟的样子会有阿里云的短信提醒你审核通过,当然也有可能审核不成功,你可以通过审核进度查看失败的原因!
四、下载CA证书,按照阿里云的步骤,不过这里有坑,我用pfx配置无论怎么配置都无法访问https,后来用jks配置就成功了,配置,下面贴出关键步骤
2、解压后会有四个文件,如果你在证书审核时没有选择系统生成CSR,那就只有一个pem文件
3、因为我配置pfx一直都不成功,这里就不说pfx的配置了,直接说jks的配置
① 在服务器上的tomcat安装目录下创建一个cert文件夹,建议在conf文件夹中创建
cd /home/tomcat/apache-tomcat-default/conf
mkdir cert
② 将本地下载的.pfx文件上传到服务器上的cert文件夹中
scp /Users/xxxx/Desktop/ca/xxx.pfx root@xxx:/home/tomcat/apache-tomcat-default/conf/cert
③ 执行下面命令生成jks文件,需要输入密码,强烈建议jks密码和pfx密码一致
该命令在cert文件夹中执行
keytool -importkeystore -srckeystore xxx.pfx -destkeystore your-name.jks -srcstoretype PKCS12 -deststoretype JKS
④ 退回到conf文件夹中
编辑server.xml文件
vi server.xml
找到Connection port="8443",取消注释,并进行如下配置,按照阿里云的文档说的配置是不成功的!
除此之外还要修改下面两处
保存退出!
五、完成以上配置并不能成功访问https
还要进行一下两点配置
1、添加443安全组,跟配置8080安全组一样,配置443安全组,若不知道如何配置请参考我的这篇文章阿里云服务器购买与Java环境部署
2、开放防火墙的443端口
centos7使用的是firewall 不是iptables,所以很多service命令都无法执行,下面是用firewall命令操作防火墙
firewall-cmd --zone=public --add-port=443/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
重启防火墙
systemctl restart firewalld.service
更多防火墙操作命令请自行百度哦!
做完以上几点,应该就可以成功访问https了!
如果要让http强转到https,可以在conf文件夹下的web.xml文件中进行如下配置
vi web.xml
进入web.xml之后,shift+G 跳到最后一行(web.xml将近5000行)
在welcome-file-list后面加上下面这段
<security-constraint>
<web-resource-collection >
<web-resource-name >OPENSSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
这样你访问http://www.baidu.com 就会自动跳转到https://www.baidu.com 也可直接访问baidu.com