免费ssl证书申请以及nginx配置https访问攻略

攻略背景

最近需要为我哥的协会申请ssl证书,因为小程序接口需要https。于是开启了这一番折腾,最后简化为一篇攻略。

第一步,申请SSL证书

这个网站最好,可以申请到1年的,其他都是三个月。1年后再申请就行了。
https://freessl.cn/
免费ssl证书申请以及nginx配置https访问攻略_第1张图片

第二步,验证服务器

可以DNS验证,就是配置域名,那个太麻烦,可以选择验证服务器。只要保证

http://www.你的域名.cn/.well-known/pki-validation/fileauth.txt可以访问并且里面是freessl给你的格式即可。

如果遇到.well-known无法生成这个目录,可以看我的文章【SSL证书申请之如何创建/.well-known/pki-validation/目录?】
免费ssl证书申请以及nginx配置https访问攻略_第2张图片
第三步,得到.pem+.key文件

验证成功后可以下载到对应的.pem+.key文件
免费ssl证书申请以及nginx配置https访问攻略_第3张图片

第四部,配置nginx

把下载到的.pem.key文件放入nginx/conf/cert目录(需要新建)。
请注意再nginx.conf配置中的路径,是指/conf下面的路径,不是nginx主目录下的路径
免费ssl证书申请以及nginx配置https访问攻略_第4张图片
然后备份并打开nginx.conf文件,新增一下https server的配置。这里的配置是代理转发为主,如果你用nginx做前端服务器,则修改对应的配置即可。

#配置http转发到https by moshow
server {
    listen 80;
    server_name www.你的域名.org.cn;
	return 301 https://$server_name$request_uri;
}
#配置https以及证书 by moshow
  server {
      listen       443 ssl;
      charset utf-8;
      server_name  www.你的域名.org.cn;
      ssl_certificate      cert/full_chain.pem;
      ssl_certificate_key  cert/private.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:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
      ssl_prefer_server_ciphers  on;
  
      location / {
            proxy_pass   http://127.0.0.1:8080;
        }
  }

第五步,重新加载配置nginx

cd /d D:\nginx-1.15.5
nginx -s reload

最后,访问https

看到成功访问即可。如果有问题的话,会有提示,证书不匹配等。

版本更新

  • 2018-12-4 zhengk 补充了http自动跳转https的配置
  • 2018-12-3 zhengk 配了好些个https域名后发现一级域名和二级域名都是需要独立申请的,例如www.abc.cn和abc.cn是共用一个证书的,xxx.abc.cn是需要另外申请一个ssl证书的。
  • 2018-12-2 zhengk 测试发现,这个freessl.cn相比https://github.com/diafygi/acme-tiny这个三个月自动续期更加稳定、快速、便捷,当然各有优缺点,大家理智看待,自行取舍即可。

你可能感兴趣的:(Spring)