SSL证书申请

这里以阿里云为例

进入阿里云控制台 申请SSL证书(免费/收费) 下载

阿里云控制台

Tomcat版证书

  1. 以Tomcat为例 得到两个文件,一个是pfx格式的证书,一个是密码文本
  2. 使用java jdk将PFX格式证书转换为JKS格式证书 --最终得到 domains.jks (CMD)
    Microsoft Windows [版本 10.0.19041.508]
    (c) 2020 Microsoft Corporation. 保留所有权利。
    
    C:\Users\user06>cd C:\ssl
    
    C:\ssl>keytool -importkeystore -srckeystore 你的证书文件名称.pfx -destkeystore domains.jks -srcstoretype PKCS12 -deststoretype JKS
    正在将密钥库 你的证书文件名称.pfx 导入到 domains.jks...
    输入目标密钥库口令:
    再次输入新口令:
    输入源密钥库口令:
    已成功导入别名 alias 的条目。
    已完成导入命令: 1 个条目成功导入, 0 个条目失败或取消
    
    Warning:
    JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore domains.jks -destkeystore domains.jks -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。
    
    C:\ssl>

Nginx版证书

  1. 下载得到两个文件,一个是pem格式的证书,一个是key格式的密码

服务器https配置

Tomcat配置

  1. 服务器切换到conf目录将domains.jks复制到此目录,编辑server.xml
   <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
      maxThreads="150" SSLEnabled="true" scheme="https" secure="true" 
      keystoreFile="conf/domains.jks"  #证书目录
      keystorePass="4sMRN6K3"         #证书密码
      clientAuth="false" sslProtocol="TLS" />

  1. HTTP强制跳转HTTPS(可选) 修改项目的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>

Nginx配置

将pem和key文件复制目服务器 打开nginx目录下的nginx.conf文件

http{
 #http节点中可以添加多个server节点
 server{
    #监听443端口
    listen 443;
    #对应的域名,把xxxx.com改成你们自己的域名就可以了
    server_name xxxxx.com;
    ssl on;
    #第一个pem文件的全路径
    ssl_certificate /pem路径/文件.pem;
    #第二个key文件的全路径
    ssl_certificate_key  /key路径/文件.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    #这是我的主页访问地址,因为使用的是静态的html网页,所以直接使用location就可以完成了。
    location / {
            #文件夹
            root /usr/local/service/ROOT;
            #主页文件
            index index.html;
    }
}
server{
    listen 80;
    server_name xxxx.com;
    rewrite ^/(.*)$ https://xxxx.com:443/$1 permanent;
    }
}

如果使用宝塔面板的Nginx 可以直接复制粘贴(其他辅助工具同理)

宝塔面板Nginx

Last modification:January 7, 2023
如果觉得我的文章对你有用,您可以给博主买一杯果汁,谢谢!