下载 acme-tiny

创建用户私钥和域名私钥 "创建用户私钥和域名私钥")创建用户私钥和域名私钥

mkdir -p /etc/ssl/letsencrypt/

cd /etc/ssl/letsencrypt/

openssl genrsa 4096 > account.key

openssl genrsa 4096 > domain.key

生成域名 csr 文件 "生成域名 csr 文件")生成域名 csr 文件

单域名

openssl req -new -sha256 -key domain.key -subj "/CN=www.yoursite.com" > domain.csr

多域名

ln -s /etc/pki/tls/openssl.cnf /etc/ssl/openssl.cnf

openssl req -new -sha256 -key domain.key -subj "/" -reqexts SAN -config domain.csr

配置 Web 站点的 challenge 文件 "配置 Web 站点的 challenge 文件")配置 Web 站点的 challenge 文件

mkdir -p /var/www/challenges/

#example for nginx

server {

listen 80;

server_name yoursite.com www.yoursite.com;

location /.well-known/acme-challenge/ {

alias /var/www/challenges/;

try_files $uri =404;

}

...the rest of your config

}

生成 signed 文件 "生成 signed 文件")生成 signed 文件

wget -c https://raw.githubusercontent.com/yangphere/acme-tiny/master/acme_tiny.py --no-check-certificate

python acme_tiny.py --account-key /etc/ssl/letsencrypt/account.key --csr /etc/ssl/letsencrypt/domain.csr --acme-dir /var/www/challenges/ > /etc/ssl/letsencrypt/signed.crt

生成证书链 "生成证书链")生成证书链

v1 版,兼容性差点

wget -O - https://letsencrypt.org/certs/lets-encrypt-x1-cross-signed.pem > /etc/ssl/letsencrypt/intermediate.pem

cat /etc/ssl/letsencrypt/signed.crt /etc/ssl/letsencrypt/intermediate.pem > /etc/ssl/letsencrypt/chained.pem

建议使用 v3 版

wget -O - https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem > /etc/ssl/letsencrypt/intermediate.pem

cat /etc/ssl/letsencrypt/signed.crt /etc/ssl/letsencrypt/intermediate.pem > /etc/ssl/letsencrypt/chained.pem

生成 dh 证书 "生成 dh 证书")生成 dh 证书

openssl dhparam -out dhparam.pem 2048

配置 nginx 使 SSL 证书生效 "配置 nginx 使 SSL 证书生效")配置 nginx 使 SSL 证书生效

server {

listen 443;

server_name yoursite.com, www.yoursite.com;

ssl on;

ssl_certificate /etc/ssl/letsencrypt/chained.pem;

ssl_certificate_key /etc/ssl/letsencrypt/domain.key;

ssl_session_timeout 5m;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA;

ssl_session_cache shared:SSL:50m;

ssl_dhparam /etc/ssl/letsencrypt/dhparam.pem;

ssl_prefer_server_ciphers on;

...the rest of your config

}

server {

listen 80;

server_name yoursite.com, www.yoursite.com;

location /.well-known/acme-challenge/ {

alias /var/www/challenges/;

try_files $uri =404;

}

...the rest of your config

}

重启 nginx 服务 "重启 nginx 服务")重启 nginx 服务

service nginx reload

自动生成 SSL 证书 "自动生成 SSL 证书")自动生成 SSL 证书

由于 Let’s Encrypt 的证书只有 90 天的有效期,需要使用系统每个月生成一次。编辑 renew_cert.sh 文件

以下是 v1 版,兼容性差点

#!/usr/bin/shpython /etc/ssl/letsencrypt/acme_tiny.py --account-key /etc/ssl/letsencrypt/account.key --csr /etc/ssl/letsencrypt/domain.csr --acme-dir /var/www/challenges/ > /etc/ssl/letsencrypt/signed.crt || exit

wget -O - https://letsencrypt.org/certs/lets-encrypt-x1-cross-signed.pem > /etc/ssl/letsencrypt/intermediate.pem

cat /etc/ssl/letsencrypt/signed.crt /etc/ssl/letsencrypt/intermediate.pem > /etc/ssl/letsencrypt/chained.pem

service nginx reload

建议使用 v3 版

#!/usr/bin/shpython /etc/ssl/letsencrypt/acme_tiny.py --account-key /etc/ssl/letsencrypt/account.key --csr /etc/ssl/letsencrypt/domain.csr --acme-dir /var/www/challenges/ > /etc/ssl/letsencrypt/signed.crt || exit

wget -O - https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem > /etc/ssl/letsencrypt/intermediate.pem

cat /etc/ssl/letsencrypt/signed.crt /etc/ssl/letsencrypt/intermediate.pem > /etc/ssl/letsencrypt/chained.pem

service nginx reload

添加可执行权限

chmod +x renew_cert.sh

编辑 crontab 文件

crontab -e

加入如下内容

0 0 1 * * /etc/ssl/letsencrypt/renew_cert.sh 2>> /var/log/acme_tiny.log

重启 crontab 服务

service crond restart

测试一下 SSL 质量 "测试一下 SSL 质量")测试一下 SSL 质量

python acme_使用 acme-tiny 工具生成 Let's Encrypt 的免费 SSL 证书相关推荐

  1. 使用Certbot工具从Let’s Encrypt获取免费SSL证书

    文章目录 一.简介 二.Certbot使用 2.1 安装snapd 2.2 安装Certbot 2.3 证书获取 2.4 续期证书 三.卸载 一.简介 Let's Encrypt 官方文档:https ...

  2. acme.sh申请免费SSL证书,泛域名证书,多域名证书

    acme.sh可以通过acme协议生成Let's Encrypt颁发的SSL证书. Let's Encrypt 提供了单域名证书,泛域名证书和多域名证书 0.GitHub地址 1.在线安装 curl ...

  3. 申请免费SSL证书的网站或工具

    Cloudflare 官网 Cloudflare 提供了免费的 SSL 证书,可以直接在 Cloudflare 的网站管理界面中申请.Cloudflare 的 SSL 证书可以实现端到端的加密,并提供 ...

  4. 利用Certbot工具快速给网站部署Let's Encrypt免费SSL证书

    使用https证书的话,强制使用域名 很多商家也都提供免费证书,比如腾讯云提供免费一年GeoTrust DV SSL证书.Let's Encrypt永久免费但需要90天激活一次续约,当然如果要购买证书 ...

  5. 阿里云添加二级域名及生成免费ssl证书

    阿里云添加二级域名及生成免费ssl证书 一.问题背景 app上架需要绑定域名进行解析,需要提供域名及对应的ssl证书 二.解决方案 1.公司已有域名,生成二级域名和免费ssl证书提供 三.具体操作 1 ...

  6. Acme.sh 自动生成、续期 ​Let‘s Encrypt 免费SSL证书

    ​​Let's Encrypt 提供了90天免费证书,而 acme.sh 实现了 acme 协议, 可以从 ​​Let's Encrypt 生成免费的证书.,通过计划任务可实现自动续期,自动部署,完全 ...

  7. acme云服务器生成证书_腾讯云DNSPOD,利用acme申请免费ssl证书。

    有几个客户的域名是使用dnspod来管理域名dns,记录一下申请ssl证书的过程. acme.sh 官方链接 dnspod.cn 需要先申请api 操作密锁,路径是: 账号中心-密锁管理 1.下载ac ...

  8. Rocky(Centos)使用acme.sh申请安装Let‘s Encrypt泛域名ECC证书(阿里DNS)

    现代的浏览器开始有将 https 访问作为默认访问方式的倾向,因此需要将网站配置为https 访问. Let's Encrypt 组织提供免费的 TLS 加密证书,用于协助web服务器实现https协 ...

  9. python怎么申请证书_https怎么申请证书(免费SSL证书申请步骤)

    作者:HelloGitHub-追梦人物 HTTP 报文以明文形式传输,如果你的网站只支持 HTTP 协议,那么就有可能遭受到安全攻击.你可以使用 Google 浏览器打开一个 HTTP 协议网站,会发 ...

最新文章

  1. mysql-索引-笔记
  2. 回流,重绘的概念,以及他们的区别?
  3. Cloud for Customer的第一个显示的work center是怎么加载和渲染的
  4. Nginx中如何配置中文域名?
  5. MFC中CString转换成char数组的问题
  6. 2021年中国人力资源服务行业研究报告
  7. 经典面试题(23):以下代码将输出的结果是什么?
  8. c语言实验一的错误,C语言实验(三)
  9. 从Windows到鸿蒙——操作系统的前世今生
  10. android 字体像素转换工具类_android px,dp,sp大小转换工具
  11. 深圳车联网云服务商“麦谷科技”获5000万Pre A轮融资
  12. RDD的创建 -Scala educoder
  13. P1251 餐巾计划问题 解题报告
  14. iOS开发:xcode无法选择设备和corner stone如何过滤上传文件
  15. Word文档 回车符去除
  16. mysql 1677_mysql5.6同步,Last_SQL_Errno: 1677
  17. 微信小程序隐藏tabBar
  18. Ublox-F9P USB接口
  19. Yearning SQL审核平台部署与使用 详细步骤【生产环境】
  20. 算法题——判断四边形是否为凸四边形

热门文章

  1. Android8.1 Camera2+HAL3之HIDL open()流程(二十)
  2. repo sync代码断点续传
  3. 如何选择深度学习框架 TensorFlow/Torch/Mxnet/Theano
  4. Android解包命令:unpackbootimg与打包命令:mkbootimg使用
  5. Android4.4 Sensor APP--HAL代码流程
  6. wpf之代码设置背景图片
  7. Linux环境下Git的安装以及使用
  8. 云服务器如何清理垃圾释放空间?
  9. 不要抱怨,每个人的人生都不完美
  10. webpack-internal:///./node_modules/vue/dist/vue.esm.js:629 [Vue warn]: Invalid prop: type check fail