1. 申请SSL证书
无论你使用的使阿里云的云服务器还是腾讯云的云服务器,都支持免费申请ssl证书,这里以腾讯云为例介绍下如何申请ssl证书。
进入自己腾讯云服务器的控制台,左上角的云产品列表下,可以找到域名与网站,里面就有SSL证书,如下图:
点击进去,就可以看到免费申请证书入口,如下图:
点击免费申请证书,会弹出来如下界面:
默认已经选好了,直接点击确认俺就就可以,然后进入信息完善页面,如下图
按照要求填写自己的信息,星号是必填的,填写完后点击下一步,会弹出来如下界面:
默认选自动DNS验证,然后点击确认申请,会弹出申请提交界面,如下:
点击查看证书详情,会提示等待腾讯官方审核通过,预计一个工作日审核通过, 实测一般一二十分钟就能通过,通过后,去证书管理界面可以看到自己申请的证书如下界面:
点击下载,就可以下载到自己的证书,是一个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
代码语言:javascript复制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服务,如下命令:
代码语言:javascript复制sudo killall -9 nginx # 停止nginx服务
sudo /usr/sbin/nginx # 运行nginx服务
现在,在浏览器中输入域名进行测试,比如我的网站, https://www.0a0z.cn,可以成功访问,表示网站支持https协议了,访问时不会再提示不安全,会有加密标志了,如下:前面的锁处在锁住状态。