为你的网站或App提供免费Https支持

网站或App Http传输是明文传输,在传输登录或支付相关的数据时,完全是裸奔。

购买证书虽然不是很贵, 但对于个人或初创团队来说,完全可以申请免费的证书来提供Https访问。

本文介绍通过startssl 申请免费证书,并通过阿里云slb配置实现。

startssl url : https://startssl.com/  目前可申请三年的免费证书

邮箱注册后登录(可下载客户端证书,通过证书登录,或者一次性验证码登录) ,如果通过一次性验证码登录,登录后,会提示你生成登录证书

输入私钥密码提交,点击Download files 即可下载登录证书,下载后双击按照向导导入,重启浏览器即可选择证书登录

登录后,选择下图红框点continue进入域名校验,输入你的域名,一级域名即可

 

校验成功后,在后侧边栏会显示你已经校验过的域名,如下图

域名验证完后,进入证书向导,下图, 点击 DV SSL Certificate,

进入下图所示页面,在Add Domain框中输入你要申请证书的二级域名,第一条写一级域名,最多可以填10个,填好后,选择Generated By Myself提交CSR,这里按照说明需要在命令行执行 openssl req -newkey rsa:2048 -keyout yourname.key -out yourname.csr 生成csr文件(执行时需要填入组织机构相应信息),然后贴入csr文件内容,提交即可获得证书。

下载证书压缩包, 结构为

根据情况解压对应的证书文件。

阿里云 slb 配置:

前端选择 HTTPS :443 端口

后端选择 HTTP 80 端口

新建证书

证书pem:

选择 ssl 证书压缩包中 nginx 1_xx.crt 中第1部分(这个里面有两部分)

如果只按上述选择, 则在浏览器里访问不会报警告,但手机里访问会报警告,需要加三节证书,即需要将OtherServer 目录下的三个文件内容贴入证书pem中,且按照从上到下 2_xx.crt —— 1_Intermediate.crt —— root.crt 的顺序贴入。

私钥pem:

(执行 openssl rsa -in xx.key -out xx_nopass.key  #nginx 启动时不再需要输入密码,  xx.key即上面执行 openssl req -newkey rsa:2048 -keyout yourname.key -out yourname.csr 所生成的key文件)

选择 xx_nopass.key 所有内容

后端应用 nginx 不需要使用 ssl 配置。

如果是直接配置nginx,则在nginx配置文件中添加一段监听443端口的server server{

   listen 443;
   ssl on;
 
   ssl_certificate path_to_crt;
   ssl_certificate_key path_to_nopasskey;
 
   server_name localhost;

   location / {
     root html;
     index index.html index.htm;
   }
 
   error_page 500 502 503 504 /50x.html;
   location = /50x.html {
     root html;
   }

   location ~ ^/(xx)/ {
    proxy_pass http://xx:12080;
  }

}

原文地址:https://www.cnblogs.com/spec-dog/p/6228907.html