Google Let's Encrypt 证书

背景

因为国内域名不备案, 如果不使用HTTPS访问网站, 那么会直接提示温馨提示:该网站暂时无法访问. 而且也正是因为HTTP请求会被拦截, 所以Google Let's Encrypt命令行工具也无法使用, 因为其需要通过HTTP请求来完成验证.

手工获取证书

网站: SSL For Free

  1. 在输入框中输入多个域名 (使用空格隔开):
    api.domain.com class.domain.com www.domain.com
  2. 点击Create Free SSL Certificate按钮
  3. 选择验证方式 - Manual Verification (DNS)
  4. 登录DNS管理网站, 添加TXT记录
    SSL FOR FREE网站会叫你手动添加5条TXT DNS记录. 比如说
    host为_acme-challenge.api.domain.com, 值为Ak0E7oILRNkxggHPYSQRykZKSF3oyrNq6P7c0HB4rTg. 那么在DNS管理那里添加TXT记录的时候在host那里输入_acme-challenge.api即可. 自己的域名(domain.com)那部分不需要写进去.
  5. 点击Download SSL Certificate之前, 先手动点击那几个网址验证一下, 因为DNS记录需要一些时间才能生效.
  6. 点击Download SSL Certificate下载证书.

配置

解压得到三个文件, 然后在命令行输入:

echo -e "$(cat certificate.crt)\n$(cat certificate.crt)" > cert_chain.crt

这里要注意\n是必须的, 要保证合并的crt文件的格式如下:

-----BEGIN CERTIFICATE-----
secret
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
secret
-----END CERTIFICATE-----

即不能-----END CERTIFICATE----------BEGIN CERTIFICATE-----在同一行, 否则Nginx会报错.

Nginx 配置:

ssl_certificate /path/cert_chain.crt;
ssl_certificate_key /path/private.key;

配置好后记得sudo service nginx restart一下.

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容