自由的SSL证书 要不要

最近调研SSL,对于自由的SSL证书打算研究下,于是有了这篇。
之所以叫自由,因为不喜欢免费,因为免费总感觉要付出代价。
获取 letsencrypt SSL证书 参考:
https://imququ.com/post/letsencrypt-certificate.html

# 创建一个目录 mkdir /root/ssl# 创建一个RSA私钥 openssl genrsa 4096 > account.key# 创建另一个RSA私钥 openssl genrsa 4096 > domain.key#创建ECC私钥 openssl ecparam -genkey -name secp256r1 | openssl ec -out domain.key openssl ecparam -genkey -name secp384r1 | openssl ec -out domain.key#生成CSR文件,有两种方式,我用的是第二种,但是第一种可以一次多申请几个,可以稍后测试 openssl req -new -sha256 -key domain.key -subj "/" -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:yoursite.com,DNS:www.yoursite.com")) > domain.csr openssl req -new -sha256 -key domain.key -out domain.csr注意,记得系统安装yum install openssl# 配置验证服务,为啥要这么说呢,因为letsencrypt给的也是DV,也就是域名验证,我们运行软件申请的时候,本身python脚本会在本地写一个随机数到一个随机文件,它们官方会从远端经过公网DNS解析并去获取这个文件,如果一致,就说明这个站点是我们的,也就可以申请证书了。 mkdir ~/www/challenges/ # 另外,还需要两个步骤,最后会说明为啥要这两个步骤。 mkdir /root/www/challenges/.well-known/ -p ln -s /root/www/challenges/ /root/www/challenges/.well-known/acme-challenge# 接下来我们就要下载python脚本,并去申请证书了 wget https://raw.githubusercontent.com/diafygi/acme-tiny/master/acme_tiny.py# 在执行下面之前,我们可以打开网站,最简单的就是使用python python -m SimpleHTTPServer 80 python acme_tiny.py --account-key ./account.key --csr ./domain.csr --acme-dir ~/www/challenges/ > ./signed.crt# 如果一切正常,我们会看到signed.crt这个就是我们的证书了。# 另外,我们还需要letsencrypt的中间证书,我也不知道啥意思,反正是需要一个官网的东西 wget -O - https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem > intermediate.pem cat signed.crt intermediate.pem > chained.pem wget -O - https://letsencrypt.org/certs/isrgrootx1.pem > root.pem cat intermediate.pem root.pem > full_chained.pem# 其中chained.pem就是我们需要的了# 配置SSL证书网站 server { listen 443 ssl; # 这个SSL相当重要 server_name soft.ops.ac.cn; #设置长连接 keepalive_timeout70; ssl_certificate/etc/nginx/ssl/chained.pem; ssl_certificate_key /etc/nginx/ssl/domain.key; ssl_protocolsTLSv1 TLSv1.1 TLSv1.2; #ssl_ciphersHIGH:!aNULL:!MD5; location / { root /data/soft/soft; autoindex on; } }

踩到的坑
  • 这个是采用第二种方式生成CSR,注意,hostname那个地方我用了两个,其实这么写不科学
    自由的SSL证书 要不要
    文章图片

  • 这个地方提示无法下载,其实有两个原因,1. 官方会从国外去解析我们的域名,有时候会有问题,所以这种情况多试几次就好了,再有就是看日志,看http有没有人来拿东西 2. 就是我们的目录没有,注意看提示,脚本虽然是在根目录写,但是取的时候却加入了两个目录,所以之前也有介绍,需要多两个步骤,一个是创建目录,一个是添加软连接
    自由的SSL证书 要不要
    文章图片

  • 【自由的SSL证书 要不要】这个地方就是我们使用的内网,会报错,没有一个公网IP地址是不成的
    自由的SSL证书 要不要
    文章图片

  • 这个地方就是我们在生成CSR的时候,输入方式不对,后来改成只写一个了,其实是可以写多个的,只是我不知道
    自由的SSL证书 要不要
    文章图片

  • 看个页面,这样就好了么~
    自由的SSL证书 要不要
    文章图片

  • 如果收到了SSL 接收到一个超出最大准许长度的记录。有可能是nginx中listen 443 后边没有加SSL哦。
总结
  1. letsencrypt提供的DV验证,另外,Symantec提供的起码是OV,也就是说咱们的这个证书是不会显示出来公司名字的哦
  2. 貌似目前已经提供了ECC,要知道ECC在提供安全性的时候,还减少了证书的大小,会提高效率,具体数字未知
  3. 这个证书只有90天有效期哦,不过可以做到自动化,不过我是在内网使用,所以就不大好搞了,当然也能搞。

    推荐阅读