转,记一次freessl免费ssl证书申请


https://www.cnblogs.com/xtxtx/p/12097177.html

  • 务场景

  因安全要求,对外只能暴露80 443端口 ,而且一旦一个用了https 其调用的其他http接口也都需要https,导致证书需求量很多, 业务场景需要给别人部署服务器

  目前的证书都是在腾讯云上申请的, 一个账号只能申请20个(可能是50个)证书, 明显不够用, 要不就多搞几个腾讯云账号  要不就想其他办法搞证书

  •  用freessl申请免费证书 目前没限制说一个账号限制申请多少个证书     https://freessl.cn/
  1.   部署一个应用到服务器 保证ip+端口可以访问到 

  2.      解析一个域名到服务器 运维在管理这些 我们的域名是在 https://www.dns.com/ 上购买的

      解析好后 命令行 ping下是否解析到你的服务器ip

   3.   打开 https://freessl.cn/ 输入你刚刚解析的域名 

输入邮箱  CSR生成 选择一键生成  然后下载安装keymanager

注册keymanager后选择域名服务商 我们是用的dns.com  点击下面链接获取秘钥 填写完密保问题后就会给一个key一个secret 填入下面

 4.  然后点击一键申请 成功后会有一条记录

点击右边的操作 查看详情 => 查看证书 =>导出证书 选择证书你要部署的服务器平台后就可导出了 我们用的nginx

导出到桌面后解压有2个文件

 5. 配置nginx

找到nginx配置文件存放的路径 一般是/etc/nginx  不知道可以查下nginx安装在哪  

whereis nginx

创建一个配置文件  域名.conf

server {
        listen 80;
        listen 443 ssl;
        server_name 你的域名.xyz  www.你的域名.xyz;
        if ($server_port !~ 443){
                return 307 https://$host$request_uri;
        }

        ssl_certificate /usr/local/nginx/ssl/你的域名.xyz_chain.crt; #你的证书上传到这个路径
        ssl_certificate_key /usr/local/nginx/ssl/你的域名.xyz_key.key; #你的证书上传到这个路径

        gzip  on;
        gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
        gzip_types *;
        gzip_vary on;

        location / {
                #root  /usr/src/gameclient/;
                #index  index.html index.htm;
                proxy_pass http://10.0.1.5:23232/; #建议程序只监听内网IP端口 由nginx做转发 上面的步骤1 只是为了测下保证ip+端口可以正常访问 
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        }
       }

 重新加载nginx

nginx -s reload

浏览器输入域名访问下 看看是否会跳转https