前提条件(已经生成了一下文件)
XXXX.com.crt (域名证书) 有的证书可能是cer 或 pem 或其他后缀名,都可以
XXXX.com.key (私钥文件)
#配置ca证书
server {
listen 443;
server_name XXXX.com;
ssl on;
#引用证书(必须,放在conf/ssl目录下可以用相对路径,其他位置用绝对路径)
ssl_certificate ssl/3024790_XXXX.cn.pem;// 你的证书
ssl_certificate_key ssl/3024790_XXXX.cn.key;// 你的证书
#协议优化(可选,优化https协议,增加安全性)
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
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;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
#把http的域名请求转成https
server {
listen 80;
server_name XXXX.com;// 你的域名
rewrite ^(.*)$ https://$host$1 permanent;// 把http的域名请求转成https
}
注意:nginx -t 报错the "ssl" parameter requires ngx_http_ssl_module缺少ssl模块
如何补装SSL模块
步骤一:我们先来到当初下载nginx的包压缩的解压目录.
步骤二:来到解压目录下后,按顺序执行一下命令:
命令1、./configure --with-http_ssl_module //重新添加这个ssl模块,如果报错缺少库,安装相应库
命令2、执行make命令,但是不要执行make install,因为make是用来编译的,而make install是安装,不然你整个nginx会重新覆盖的。
命令3、在我们执行完做命令后,我们可以查看到在nginx解压目录下,objs文件夹中多了一个nginx的文件,这个就是新版本的程序了。首先我们把之前的nginx先备份一下,然后把新的程序复制过去覆盖之前的即可。
命令4,最后我们来到Nginx安装目录下,来查看是否有安装ssl模块成功。执行./sbin/nginx -V即可: