虽然觉得个人的网站博客好像没有特别的需要配置https,但是…为了看起来帅一点,我决定配置https…
-
本文配置https前置条件:
1、已有备案的域名
2、已部署好http下访问的相关页面
第一步 申请SSL证书
阿里云申请SSL证书
-
先在偌大的产品与服务中找到“SSL证书”选项
-
点击购买证书
-
进入相关页面后选定“免费型DV SSL”并进行购买
-
购买成功后要进行证书申请
-
按申请内容进行填写
-
等待证书申请成功通知(时间不定,有过十几分钟就申请成功,也有过申请了几个小时才成功的…)
-
申请成功之后下载SSL证书,下载证书后里面有四个目录,分别是Apache、IIS、Nginx、Tmocat,其中Tomcat里有我们要使用的证书
腾讯云申请SSL证书
-
先在偌大的产品与服务中找到“SSL证书”选项
-
点击申请免费证书选项
-
按信息填写相关内容
-
其中填写了私钥密码则后续下载的证书文件(Tomcat目录)中就不会生成keystorePass文件,在Tomcat的配置中keystorePass也是填写你自己的私钥密码
-
等待证书申请成功通知(时间不定,有过十几分钟就申请成功,也有过申请了几个小时才成功的…)
-
申请成功之后下载SSL证书,下载证书后里面有四个目录,分别是Apache、IIS、Nginx、Tmocat,其中Tomcat里有我们要使用的证书
第二步 在Tomcat中配置https
- 打开你下载的证书目录,进入Tomcat目录下,里面有两个文件,一个是www.你的域名.com.jks,一个是keystorePass.txt(腾讯云的在申请证书时填写了私钥密码则没有该文件),前者jks文件是密钥库。将该文件上传至Tomcat的conf目录下
- 同样在Tomcat的conf目录下,用记事本或者其他编辑软件打开server.xml文件,在其中添加以下内容(先观察你的tomcat中有没有相关的内容,注意不要写到注释里面去了)
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="c:/Tomcat/conf/" #证书保存的路径,
keystorePass="******"#密钥库密码(keystorePass.txt中内容)
clientAuth="false"/>
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
- Tomcat的https配置就这样搞定了
第三步 配置http自动跳转https
- 在Tomcat的conf目录下,编辑web.xml文件,移至最底部,在标签下换行并添加以下内容
<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>
- 注意是后,即该标签结束后
- 再编辑Tomcat的conf目录下的server.xml文件,将redirectPort 参数修改为 SSL 的 connector 的端口,即8443端口修改为443端口(此操作将非SSL的connector跳转至SSL的connector)。如下所示
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
- 之后重启Tomcat即可