购买阿里云免费https证书,配置tomcat实现https加密访问

来源:互联网 发布:华为网络机顶盒怎么样 编辑:程序博客网 时间:2024/05/18 00:54

购买阿里云免费https证书,配置tomcat实现https加密访问

更新日期:2017年1月10日(这是重点)

这个可能写的太low了,可能有人问这问题也在csdn发表,但是我想一定会有一堆像我这样的小白,希望社区里能留下我们的身影,小白怎么了,小白也需要成长。。。

1. 购买免费证书:

点击这个地址 https://common-buy.aliyun.com/?commodityCode=cas#/buy 进入阿里云进行购买,如下图

这里写图片描述

该方案只能绑定一个域名

这里写图片描述

这里写图片描述
支付成功后进入控制台,点击
这里写图片描述
如果找不到可以按照下图寻找↓↓↓↓↓↓
这里写图片描述

补全内容
这里写图片描述

这里写图片描述

这里写图片描述
按照要求填写,这里默认DNS就可以,如果你是阿里买的域名,直接勾选这个,如果不是,按照提示配置一下域名解析。

这里写图片描述
审核成功之后变成已签发状态,推送不用管,是额外的服务,收费的,点击下载进行证书下载:
这里写图片描述
这里我们主要讲解tomcat证书的安装配置,其他用户根据自己需要即可。
下载文件如下:
这里写图片描述

tomcat7以后则不需改变,直接按照说明进行配置即可
我用的是tomcat6.0.48这里要将pfx文件转换成jsk文件
这是官方给出的转换方法:
使用java jdk将PFX格式证书转换为JKS格式证书(windows环境注意在%JAVA_HOME%/jdk/bin目录下执行)

keytool -importkeystore -srckeystore 213996013500014.pfx -destkeystore your-name.jks -srcstoretype PKCS12 -deststoretype JKS

切记一定是bin文件目录下,这里213996013500014.pfx和your-name.jks可以换成绝对路径的,your-name可以换成任意名字,否则需要将对应的文件放在bin目录下,打开命令提示符的时候建议用管理员模式,避免不必要的麻烦。

期间会输入3次密码,另外说一下,命令提示符下输入密码是不会在控制台上显示的,其实已经输入成功了,之前还因为这个问题纠结半天,是我台嫩了。前两次都是输入jks证书的密码,自己随意设置,第3次输入的是pfx源文件的密码,这个密码在pfx-password.txt有,理论上这两个密码可以不同,但是官方建议输入一样的,所以我们就按照官方的来吧。成功之后在bin目录下可以找到生成的jks文件。

将生成的jks文件以及之前下载下来的证书文件上传到服务器,在tomcat安装目录下新建文件夹cert
这里写图片描述
这里写图片描述

打开conf下的server.xml 将如下的代码注释去掉

    <!--    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"               maxThreads="150" scheme="https" secure="true"               clientAuth="false" sslProtocol="TLS" />    -->

修改为↓

    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"               maxThreads="150" scheme="https" secure="true"               clientAuth="false" sslProtocol="TLS"         keystoreFile="cert/xxx.jks"        keystorePass="password"/>

其中xxx.jks为之前证书格式转换设置的名称,password为之前设置的密码,即三次输入那块。
切记在64位系统下,上面的protocol=”HTTP/1.1” 需要修改为
“org.apache.coyote.http11.Http11Protocol”,
这可能是tomcat的bug吧,也是上网搜索的许久才找到的原因,如果不改,启动时候会提示错误。

重新启动tomcat,在地址中输入https://www.xxx.com:8443 其中xxx为你的域名,你会发现成功了。

输入https://www.xxx.com 即可访问,不带端口号

但是我们想要的是不带8443端口号的地址也可以访问,这里把上面的8433改为443就可以了,http默认端口80,https默认443,除了改好上面的,还需要更改以下两处:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"               maxThreads="150" scheme="https" secure="true"               clientAuth="false" sslProtocol="TLS"         keystoreFile="cert/xxx.jks"        keystorePass="password"/> <Connector port="80" protocol="HTTP/1.1"                connectionTimeout="20000"                redirectPort="8443" /> <Connector port="8222" protocol="AJP/1.3" redirectPort="8443" />

以上三处处8443均需要改为443;

输入域名或者http://强制跳转到https://服务

这里我们只需要修改conf文件夹下的web.xml文件

找到如下代码片段(在最下面)

 <welcome-file-list>        <welcome-file>index.html</welcome-file>        <welcome-file>index.htm</welcome-file>        <welcome-file>index.jsp</welcome-file> </welcome-file-list>

在 /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>

 <welcome-file-list>        <welcome-file>index.html</welcome-file>        <welcome-file>index.htm</welcome-file>        <welcome-file>index.jsp</welcome-file> </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>

大功告成,重新启动试试吧,第一次写csdn,混脸熟。

0 0
原创粉丝点击