侧边栏壁纸
  • 累计撰写 62 篇文章
  • 累计创建 35 个标签
  • 累计收到 7 条评论

目 录CONTENT

文章目录

整了个SSL证书

生榆
2019-03-03 / 0 评论 / 0 点赞 / 333 阅读 / 0 字
温馨提示:
本文最后更新于2022-12-14,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

看到阿里云有免费的Symantec证书就去申请了,中间遇到了各种各样的坑,官方的教程永远不会提醒你,到安全组把443端口允许访问……我就是这样,按照教程完完整整地配置了n遍,但就是不能访问,要不是偶然间发现服务器本地能访问443端口后上网查了查,不然我估计永远都想不起来阿里云的安全组配置。

下面是参考了许多教程的总结版和个人心得:

1. 购买申请证书:

进到阿里云的SSL证书管理控制台,保护类型选择“1个域名”后就有免费的Symantec证书选项,然后一直下一步就可以了。
buya

购买完之后是“未签发”状态,需要申请,正确填写网站信息就容易审核通过,而且审核速度蛮快的,我大概就等了1个小时?

2. 安装到服务器

上面的审核结束后,在已签发里找到刚才的证书,就有下载按钮了:

finiche

downloadcert

然后下载对应的服务器类型适用的证书。

我的服务器是Tomcat,所以详细介绍,其他的服务器类型可以参考阿里的教程:

Apache服务器安装SSL证书

Nginx/Tengine服务器安装SSL证书

IIS服务器SSL证书安装


因为我自己的是Tomcat服务器,所以下面详细说明如何配置Tomcat的证书。
下载Tomcat服务器的证书后解压,里面有一个.pfx文件和一个.txt文件,其中.pfx是证书,.txt是密码,每次下载的密码和证书是互相匹配的,所以不要重复下载后混淆使用。假设证书的名称为a.pfx。

使用keytool将pfx格式的证书转换为jks,在终端输入以下命令:

keytool -importkeystore -srckeystore a.pfx -destkeystore a.jks -srcstoretype PKCS12 -deststoretype JKS

温馨提示: Windows需要在%JAVA_HOME%/jdk/bin目录下执行

回车后会需要验证和输入密码,和刚才的.txt一样就可以了,最好设置成相同的,不然Tomcat可能启动失败。

找到Tomcat目录,新建cert文件夹,将a.pfx, a.jks, a.txt都复制进去,之后到conf文件夹找到server.xml文件,找到<Connection port=”8443”标签,增加如下属性:(a.jks替换为实际的证书文件名,下同)

keystoreFile="cert/a.jks"
keystorePass="证书密码"

完整配置如下供参考:

<Connector port="443"
    protocol="HTTP/1.1"
    SSLEnabled="true"
    scheme="https"
    secure="true"
    keystoreFile="cert/a.jks"
    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"/>

上面的

protocol="HTTP/1.1"

可以替换成

protocol="org.apache.coyote.http11.Http11NioProtocol"

据说可以提升性能。

3. 开放服务器443端口

以Windows Server为例,进入防火墙设置,点击入站规则,点击新建规则

inru1

填写端口443

inru2

之后一直下一步,起个名字,保存就好了

4. 阿里云安全组配置

在阿里云中找到你的云主机,点击更多进入安全组:
securegroup1

在安全组列表里找到那台机子所在的安全组,配置规则,如果没有配置过443端口,就添加安全组规则,如图:
443config

确定,重启Tomcat服务器就可以用https访问了。

5. 拓展:强制https访问

到装载在服务器里的web应用里的web.xml内加入这段代码,重启Tomcat即可。

<!-- 强制SSL配置,即普通的请求也会重定向为SSL请求 -->
<security-constraint>
    <web-resource-collection>
        <web-resource-name>SSL</web-resource-name>
        <url-pattern>/*</url-pattern> 
    </web-resource-collection>
    <user-data-constraint>
        <description>SSL required</description>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>
0

评论区