Nginx配置ssl证书实现https访问

Nginx配置ssl证书实现https访问

说明

有朋友留言说要网站支持一下https,博主特意搜索了一下并记录了下来,以下就是本博客配置ssl证书实现https访问的过程。


过程记录

网上有挺多免费的ssl证书,也可以生成自签名证书,本文给大家介绍的是在阿里云上购买免费的证书实现https访问。

购买证书

阿里云登录后购买ssl证书

登录阿里云选择ssl
购买ssl证书
购买ssl证书3
购买ssl证书4

下载证书

根据自己的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:博主正在修改

结尾

你是我的半截的诗,不许别人更改一个字--《半截的诗》

添加新评论