Nginx下的SSL证书配置,实现https访问网站
1、先去阿里云或者其他平台申请SLL证书服务,购买或者试用一年https,申请下来后下载证书,证书是由两个文件组成一个是*.key / *.pem,上传至服务器,提前创好文件
/usr/local/nginx/conf/cert/
2、配置nginx文件
找到或在最后面添加server 443的模块
server { listen 443; server_name 网站全域名; ssl on; root 网站的index.html; index index.html index.htm; ssl_certificate /usr/local/nginx/conf/cert/*.pem; #证书名称 ssl_certificate_key /usr/local/nginx/conf/cert/*.key; #证书名称 ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location / { root 网站的index.html; index index.html index.htm; }
确定无误后再sbin下
nginx -t
确定无误再平滑重读nginx
nginx -s reload
使用https的形式访问网站,会发现是https但是我们只输入域名就没有https,so,在80端口的server模块中最后一行加入
rewrite ^(.*)$ https://$host$1 permanent;
然后重读nginx,都会跳转到https
3、在配置的过程中遇到的报错问题记录
#这个配置文件和权限是没有冲突的,一般都是664
chmod 664 *
#找不到配置文件
仔细看报错信息是什么,找不到配置文件就写绝对路径,文章里面写的是绝对路径,也可以是相对路径,相对路径从cert开始
看报错的key文件名称是否对应cert下的key文件名称和另外一个,都要保证一样,文件里面的任何内容都不要更改
没必要的情况下不用重启nginx,在有网站的情况下,报错信息
nginx: [emerg] BIO_new_file("/usr/local/nginx/conf/cert/1529843720146.pem")等等