HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

申请证书:
可到阿里云、腾讯云申请免费证书。

安装证书:
下载证书后会看到如下几个文件夹,我们只需要用到nginx里面的.crt和.key文件
Nginx配置证书,给网站添加https
Nginx配置证书,给网站添加https

查看ngixn版本极其编译参数
/usr/local/nginx/sbin/nginx -V

若没有安装ssl模块,重编译安装ssl模块
./configure --prefix=/usr/local/nginx--with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module

make千万别make install,否则就覆盖安装了
make完之后在objs目录下就多了个nginx,这个就是新版本的程序了
备份旧的nginx程序
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
把新的nginx程序覆盖旧的
cp objs/nginx /usr/local/nginx/sbin/nginx
测试新的nginx程序是否正确
/usr/local/nginx/sbin/nginx -t

修改nginx配置文件:
将证书上传到/usr/local/nginx/ssl下,若没有自己建立一个ssl文件夹
在server模块中添加以下代码:

    listen       80;
listen       443 ssl;
    server_name  www.51it.wang; 
# 证书(公钥.发送到客户端的)server.crt表示证书名字和后缀
    ssl_certificate /usr/local/nginx/ssl/www.51it.wang.crt;
#私钥, server.key表示文件名称
    ssl_certificate_key /usr/local/nginx/ssl/www.51it.wang.key;
    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;
    #启用更多的计算模式
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

以上配置http和https都可访问,若要强制https,加入ssl on;

参考文章:
https://www.cnblogs.com/zhming26/p/6278667.html
https://blog.csdn.net/revitalizing/article/details/55271848