phpstudy安装ssl证书_给网站安装免费SSL证书

突然有一天老板让我给用Flask写的小网站安装SSL证书,虽然之前没弄过但是感觉应该不难。

主要分为以下几个步骤:

  • 购买域名
  • 购买SSL证书
  • DNS(域名解析)
  • 部署SSL证书

1. 购买域名

因为我只负责SSL证书的部署,所以域名公司已经提前在GoDaddy上买好了。我只需要他们提供给我GoDaddy的账号给我就行了,方便我后面配置DNS。

2. 购买SSL证书

因为阿里云提供了1年免费的Symantec DV SSL证书,所以能省一点是一点。直接点击“立即购买”就行了。

4e1cbbe88229d6677cb1e6a32aeac706.png
购买SSL证书

回到阿里云SSL证书管理控制台,点击证书后面的“申请”链接,在侧边栏按照提示填写申请信息。因为我用的是GoDaddy的DNS服务,所以选择“手工DNS验证”,如果你用是阿里云DNS可以自动完成域名授权验证。

8a619f593955db88534bdf7eb3a77efe.png
证书申请

3. DNS(域名解析)

然后根据验证信息到GoDaddy相应的域名下添加一条DNS记录。

a42e43ea29e2e212e08e0ef6955c5cf0.png
添加DNS解析记录

4. 部署SSL证书

没过一会儿证书就签发下来了,在“已签发的证书”中找到相应的证书,点击“下载”,根据对应的服务器类型选择证书下载。

25620c892ab86edec7f151b109e1ff3d.png
下载SSL证书

将下载的证书解压上传服务器,这里我使用XShell附带的上传工具Xftp上传,你也可以选用其他工具或命令进行上传。

b7e65669e2db73995b3e771529ef310e.png
上传SSL证书

按照以下命令配置,相应的地方需要修改成你自己的配置:

server {
  # 侦听443端口,这个是ssl访问端口
  listen    443;
  # 定义使用访问域名,修改成自己的域名
  server_name  www.xxx.com;

  # 注意这些路径是相对于/etc/nginx/nginx.conf文件位置
  ssl on;
  ssl_certificate cert/2517083_www.xxx.com.pem; # 修改成自己的证书名称,以下同
  ssl_certificate_key cert/2517083_www.xxx.com.key;
  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 / {
            proxy_pass          http://127.0.0.1:8090; # 根据自己Web运行端口进行修改
            proxy_set_header    X-Real-IP $http_x_forwarded_for;
            proxy_set_header    X-REMOTE-ADDR $remote_addr;
            proxy_set_header    X-Forwarded-For $http_x_forwarded_for;
            proxy_set_header    PROXY-ADD-X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_connect_timeout    90;
            proxy_send_timeout       90;
            proxy_read_timeout       90;
   }
}

server {
  # 80端口是http正常访问的接口
  listen 80;
  server_name www.xxx.com; # 修改成自己的域名
  # 在这里,我做了https全加密处理,在访问http的时候自动跳转到https
  rewrite ^(.*) https://$host$1 permanent;
  location / {
            proxy_pass          http://127.0.0.1:8090; # 根据自己Web运行端口进行修改
            proxy_set_header    X-Real-IP $http_x_forwarded_for;
            proxy_set_header    X-REMOTE-ADDR $remote_addr;
            proxy_set_header    X-Forwarded-For $http_x_forwarded_for;
            proxy_set_header    PROXY-ADD-X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_connect_timeout    90;
            proxy_send_timeout       90;
            proxy_read_timeout       90;
   }
}

检查Nginx配置并重启Nginx服务:

nginx -t
nginx -s reload

现在再回到浏览器访问自己的网站,是不是变成绿色的HTTPS了呢。

踩坑提示

在使用GoDaddy之前,我们公司所有的域名解析都是在Cloudflare上。Cloudflare人性化的地方就是自带SSL证书,只要开启“Always Use HTTPS”的选项开关即可HTTPS访问你的网站了,连证书申请和配置都省了。但是如果你一开始不知道的话,傻傻地按照我上面的步骤走下来,到最后会发现网站因为提示重定向太多而无法访问。我也是查了很多资料才在一篇博客上看到要将Cloudflare的SSL模式选成“Full (strict)”才能使用自己配置的SSL证书。具体原理可以查看Cloudflare官网介绍和相关博客。

e0bd1d8757bc521031439a2e6113cd1e.png
亦正亦邪的Cloudflare
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值