关注Java领域相关技术 记录有趣的事情

Nginx服务器安装SSL证书

US-B.Ralph
US-B.Ralph
2020-08-04

环境说明

  • 以本域名www.us-b.fun为例
  • 服务器版本Centos7.2
  • 服务器已开启443端口
  • Nginx版本1.18.0

证书安装操作步骤

  1. 下载证书到本地,解压后找到Nginx服务器的证书文件;
    • 文件内容包括:
      • 1_www.us-b.fun_bundle.crt
      • 2_www.us-b.fun.key
  2. 将公钥转为PEM格式证书
    PEM:Privacy Enhanced Mail,一般为文本格式,这种格式可以保存证书和私钥,有时我们也把PEM 格式的私钥的后缀改为 .key 以区别证书与私钥。PEM常用于 Apache 和 Nginx 服务器。一般采用如下格式:

    -----BEGIN CERTIFICATE-----
    BASE64 编码
    -----END CERTIFICATE-----
    

这里域名服务商提供的是CRT格式证书,CRT证书可以是二进制格式,也可以是文本格式,与DER格式相同不保存私钥,无论是二进制还是文本我们可以使用如下命令将其转为PEM格式证书:
openssl x509 -in 1_www.us-b.fun_bundle.crt -inform der -outform pem -out 1_www.us-b.fun_bundle.pem

  1. 上传证书文件
    将我们转好的PEM证书文件及私钥文件从本地目录上传至Nginx服务器的 /xx/server/vhost/cert/domain 目录下

  2. 修改Nginx配置文件

    • 通过 vim /x/server/vhost/nginx/domain.conf 修改Nginx配置文件
server
{
    listen 80;
        #ssl访问端口443
        listen 443 ssl http2;
    #绑定证书的域名
    server_name www.us-b.fun;
    #主页路径
    index index.php index.html index.htm default.php default.htm default.html;
    root /x/x/;

    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    #HTTP_TO_HTTPS_START
    if (server_port !~ 443){
        rewrite ^(/.*) https://host1 permanent;
    }
    #证书
    ssl_certificate    /x/x/vhost/cert/domain/1_www.us-b.fun_bundle.pem;
    # 私钥
    ssl_certificate_key    /x/x/vhost/cert/domain/1_www.us-b.fun_bund.pem;
    #协议
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    #加密套件,遵循openssl
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    error_page 497  https://hostrequest_uri;
    #SSL-END
}
  1. 验证配置文件 ./sbin/nginx -t
  2. 重启Nginx

配置HTTP 自动跳转 HTTPS

Nginx 支持 rewrite 功能。在 HTTP 的 server 中增加 return 301 https://hostrequest_uri;,即可将默认80端口的请求重定向为 HTTPS。配置如下:

server
{
    listen 80;
        # ssl访问端口443
        listen 443 ssl http2;
    #HTTP_TO_HTTPS_START
    if (server_port !~ 443){
        rewrite ^(/.*) https://host1 permanent;
    }
}

修改后验证配置文件没有问题重启即可。

US-B.Ralph
建站记录

Leave a Comment

邮箱地址不会被公开。 必填项已用*标注