Nginx配置ssl证书实现https访问
说明
有朋友留言说要网站支持一下https,博主特意搜索了一下并记录了下来,以下就是本博客配置ssl证书实现https访问的过程。
过程记录
网上有挺多免费的ssl证书,也可以生成自签名证书,本文给大家介绍的是在阿里云上购买免费的证书实现https访问。
购买证书
阿里云登录后购买ssl证书




下载证书
根据自己的web服务器类型选择证书进行下载,服务器/etc/nginx目录下建立cert目录,将下载的证书放到该目录下

这是博主的证书文件
root@iZm5eiw4hobozjn054cjzrZ:/etc/nginx# cd cert/
root@iZm5eiw4hobozjn054cjzrZ:/etc/nginx/cert# ls
2153871_zxliu.cn.key 2153871_zxliu.cn_nginx.zip 2153871_zxliu.cn.pem
配置nginx
贴出博主的配置文件,大家自行修改
server {
listen 443;
server_name blog.zxliu.cn;
ssl on;
access_log /home/zhangsan/data/log/nginx/blog_access.log;
error_log /home/zhangsan/data/log/nginx/blog_error.log;
root /home/zhangsan/data/www/blog;
location / {
index index.php index.html index.htm;
if (!-f $request_filename){
rewrite (.*) /index.php;
}
}
location ~ \.php$ {
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 16k;
#fastcgi_intercept_errors on;
client_body_buffer_size 1024k;
include fastcgi_params;
}
ssl_certificate /etc/nginx/cert/2153871_zxliu.cn.pem;
ssl_certificate_key /etc/nginx/cert/2153871_zxliu.cn.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;
}
server {
listen 80;
server_name blog.zxliu.cn;
rewrite ^(.*)$ https://$host$1 permanent;
}
重启Nginx
service nginx restart 或者 /etc/init.d/nginx restart
浏览器显示连接不安全说明
浏览器仍然提示不安全的原因:
虽然你的域名是有SSL证书,但是你的网站里面包含了http链接,比如网站里面的引入图片链接,JS,wordpress模板里面的http链接,页脚里面的http链接,如果是复制的别人的文章过来,里面的超链接也可能是http开头,所以你只需要找出他们并修改成https,你的网站就可以成功被浏览器认为安全网站,小绿锁来了。(小技巧:别人的链接没用https的话,可以去掉前面的http,只要后面的域名部分也能访问网站,而且去掉http只要域名部分的网站链接也会被浏览器认为是安全的)
ps:博主正在修改
结尾
你是我的半截的诗,不许别人更改一个字--《半截的诗》