阿里云可以申请免费的https(支持单域名)。申请后得到.key.pem文件。

开启https

配置支持https,可以在config.d目录下添加一个.conf结尾的文件,内容示例如下:

server {
    listen 443;
    server_name bot.tyrad.cc;
    #新版的nginx需要设置为  listen 443 ssl;
    #ssl on;
    listen 443 ssl;
    ssl_certificate pem路径地址/xx.pem;
    ssl_certificate_key key路径地址/xx.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;
    ssl_prefer_server_ciphers   on;
    location / {
	    root /usr/share/nginx/html/bot;
	    index index.html index.htm;
    }
}

强制https

如果要实现特定域名强制进行ssl访问,可以添加如下配置:

server {
    listen 80 default_server;
    # 如配置 `bot.tyrad.cc`
    server_name bot.tyrad.cc;
    return 301 https://bot.tyrad.cc$request_uri;
}

重启前可以使用nginx -t测试下是否通过。

参考:

Auto实验室:Nginx 配置 HTTPS 服务器

如何在同一服务器上实现多站点多域名HTTPS

https://phoenixnap.com/kb/redirect-http-to-https-nginx