阿里云ECS的Windows服务器下Tomcat实现https

1. 到阿里云网站上购买CA证书

阿里云ECS的Windows服务器下Tomcat实现https

跟我一样穷的,请选择免费证书。土豪随便选一个。

阿里云ECS的Windows服务器下Tomcat实现https

虽然不要钱,但是一定要去支付。

阿里云ECS的Windows服务器下Tomcat实现https

确认支付后,出现支付成功页面。

阿里云ECS的Windows服务器下Tomcat实现https

至此证书已购买成功!进入证书控制台。


2. 补全证书信息。

阿里云ECS的Windows服务器下Tomcat实现https

免费证书只能绑定一个域名,填好后进入下一步

阿里云ECS的Windows服务器下Tomcat实现https

填写申请信息,红框内的内容保证如图所示,这是最简单的方式。

阿里云ECS的Windows服务器下Tomcat实现https

填完后等待审核,一般1小时内会邮件通知审核通过。


3. 下载证书

回到证书列表页面,点击右侧下载链接。

阿里云ECS的Windows服务器下Tomcat实现https

进入下载页面,选择Tomcat,然后点下载证书按钮,会下载一个压缩文件。

阿里云ECS的Windows服务器下Tomcat实现https

页面上的操作说明不是很靠谱,不要全信。


4. 配置Tomcat

4.1 解压缩证书文件

在服务器上的Tomcat的conf目录下新建目录cert,把压缩包里的文件解压进去。

阿里云ECS的Windows服务器下Tomcat实现https


4.2 配置server.xml

4.2.1

打开server.xml文件,找到<Connector port="8080" protocol="HTTP/1.1"这行,将内容改成如图所示。我将tomcat的访问端口改成了80,这个看自己需要。并且设置了跳转到443端口,这样用户使用http访问时tomcat会自动帮你跳转到https。如果改了443端口号,后面的设置里都要将443端口改成你自己的设置。

阿里云ECS的Windows服务器下Tomcat实现https


4.2.2

找到<Connector port="8443" 这行,在下面增加如图所示内容。端口我使用了443,证书文件要使用绝对路径,密码要自己动压缩包里的密码文件里复制过来。

阿里云ECS的Windows服务器下Tomcat实现https

文本内容如下:

<Connector port="443"
        protocol="org.apache.coyote.http11.Http11Protocol"
    SSLEnabled="true"
        scheme="https"
        secure="true"
        keystoreFile="C:/apache-tomcat-7.0.55/conf/cert/证书文件名.pfx"
        keystoreType="PKCS12"
        keystorePass="证书密码"
        clientAuth="false"
        SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
        ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>


4.2.3

在下面再增加一行,内容如下:

<Connector port="8009" protocol="AJP/1.3" redirectPort="443" />


4.3 配置web.xml

打开conf目录下的web.xml文件,在文件最后,</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>


5. 重启Tomcat,在浏览器里查看结果。应该OK了!