登录        注册
  人生苦短,必用Python

如何导入SSL证书使网站支持https

Django KenZhang 273浏览 0评论

1. 申请SSL证书

无论你使用的使阿里云的云服务器还是腾讯云的云服务器,都支持免费申请ssl证书,这里以腾讯云为例介绍下如何申请ssl证书。

进入自己腾讯云服务器的控制台,左上角的云产品列表下,可以找到域名与网站,里面就有SSL证书,如下图:

image.png

image.png

点击进去,就可以看到免费申请证书入口,如下图:

image.png

点击免费申请证书,会弹出来如下界面:

image.png

默认已经选好了,直接点击确认俺就就可以,然后进入信息完善页面,如下图

image.png

按照要求填写自己的信息,星号是必填的,填写完后点击下一步,会弹出来如下界面:

image.png

默认选自动DNS验证,然后点击确认申请,会弹出申请提交界面,如下:

image.png

点击查看证书详情,会提示等待腾讯官方审核通过,预计一个工作日审核通过, 实测一般一二十分钟就能通过,通过后,去证书管理界面可以看到自己申请的证书如下界面:

image.png

点击下载,就可以下载到自己的证书,是一个zip文件,里面有各种服务器使用的证书,比如我这边用的是nginx,只需要使用解压包里面nginx里面的证书就可以。

至此,我们成功申请了证书,并拿到了证书文件,下面就是在服务器上配置,来使用SSL证书。

2. 配置nginx服务器

首先确认你之前已经配置了nginx服务器,自己的Web项目能正常的跑起来,只是还没有增加SSL证书,如果不知道怎么配置nginx服务,可以看我另一篇博文,里面有详细介绍CentOS 7+nginx+uwsgi部署Django项目,在此基础上只需要简单的修改,就可以增加SSL证书,并让自己的网站支持https和http。

a. 上传下载的SSL证书到自己的服务器,可以使用xftp上传,比如上传到自己/home文件加下。

b. 配置nginx.conf

user root;
events{}

http{
    include      /etc/nginx/mime.types;
    
    # 让http的访问指向https,从而达到兼容http访问
    server{
        listen 80;
        server_name 你的域名; # 比如 www.aaa.com
        return 301 ; # 比如:return 301 https://www.aaa.com$request_uri;
    }
    
    # 配置https访问
    server{

        listen 443;
        server_name 你的域名;# 比如:www.aaa.com
        ssl on;
        index index.html ;
        root  你的项目目录;
        
        ssl_certificate 你证书后缀为crt的文件路径; #比如 /home/1_aaa.cn_bundle.crt
        ssl_certificate_key 你证书后缀为key的文件路径; # 比如 /home/2_aaa.cn.key
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #请按照这个协议配置
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;

            location /static {
                alias 你的项目目录/static; # your Django project's static files - amend as required
            }
            location /media {
                alias 你的项目目录/media;
            }

            # Finally, send all non-media requests to the Django server.
            location / {
                include     /etc/nginx/uwsgi_params; # the uwsgi_params file you installed
                uwsgi_pass 127.0.0.1:8000;
            }
        }
}

如上这些配置完成后,需要重启nginx服务,如下命令:

sudo killall -9 nginx # 停止nginx服务
sudo /usr/sbin/nginx  # 运行nginx服务

现在,在浏览器中输入域名进行测试,比如我的网站, https://www.0a0z.cn,可以成功访问,表示网站支持https协议了,访问时不会再提示不安全,会有加密标志了,如下:前面的锁处在锁住状态。

image.png

转载请注明: KenZhang » 如何导入SSL证书使网站支持https

喜欢 (90) or 分享 ( 0)

联系我请直接在公众号留言~

扫码或搜索:大江大河定

大江大河定

微信公众号 扫一扫关注

想结交更多的朋友吗?

来PyDjango瞧瞧吧

PyDjango

QQ群号 88133982 立即加入

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请狠狠点击下面的