Published on

nginx配置ssl证书

Authors
  • avatar
    Name
    gulu
    Twitter

上篇文章acme.sh安装证书 | Gulu Blog讲述了如何使用acme.sh安装https证书,今天以nginx web服务器为例,使用和验证我们的证书。

通过apt安装nginx服务

apt install nginx

nginx默认配置路径在 /etc/nginx 目录下,上篇文章我们已经把ssl证书copy到了/etc/nginx/ssl目录里了

nginx.conf是nginx默认的配置,里面include了/etc/nginx/conf.d/*.conf,所以我们子域名的配置,都扩展到这个配置里就好,方便我们管理。

这里我们在/etc/nginx/conf.d目录下建一个example.com.conf的配置文件,用来验证我们的https证书。

server {
    # 服务器端口使用443,开启ssl, 这里ssl就是上面安装的ssl模块
    listen       443 ssl;
    # 域名,多个以空格分开
    server_name  sub.example.com;

    client_max_body_size 64M;

    # ssl证书地址
    ssl_certificate     /etc/nginx/ssl/example.com.crt;  # pem文件的路径
    ssl_certificate_key  /etc/nginx/ssl/example.com.key; # key文件的路径

    #请按照以下协议配置
    ssl_protocols TLSv1.2 TLSv1.3;
    #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;

    location / {
        root   html;
        index  index.html index.htm;
    }
}

server {
    listen       80;
    server_name  sub.example.com;
    return 301 https://$server_name$request_uri;
}

然后配置好dns解决后,访问我们示例的域名,浏览器会出现锁,说明证书生效了,如果不生效,会提示不安全。