certbot+letsencrypt配置免费单证书多域名ssl证书
时间:2022-05-11
本文章向大家介绍certbot+letsencrypt配置免费单证书多域名ssl证书,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
前些天看到微信公众平台官方公告关于公众平台接口不再支持HTTP方式调用的公告之后决定把项目的协议从http
改成https
,于是开始在网上查,完成之后总结了一点经验
本文演示的是通用证书,即在
certbot
命令中不需要指定--apache
或者--nginx
之类,只需要在完成证书生成之后在服务器配置文件里进行引用即可
Let’s Encrypt
Let’s Encrypt 认证签发为每3个月一次,也就是每 90 天必须更新(renew)一次。取得认证的过程需要进主机安裝代理程序:certbot,下面以ubuntu为例:
- 安装 1 2 3 4 5$ sudo apt-get update $ sudo apt-get install software-properties-common $ sudo add-apt-repository ppa:certbot/certbot $ sudo apt-get update $ sudo apt-get install certbot
- 生成证书 1$ sudo certbot certonly
此时会出现选项,按照提示选择即可
- 证书自动续期可以使用1certbot renew --force-renew
手动强制为证书续期 如果出现以下提示则说明更新成功
1 |
Congratulations, all renewals succeeded. The following certs have been renewed: |
---|
但为了更方便,通常使用crontab -e
编辑定时任务,并加入
1 |
0 0 1 * * certbot renew --force-renew “重启服务器命令” |
---|
实现每个月1号0点自动续期
在服务器配置相关证书
tips: 如果有多个域名
- 可以用过在
Please enter in your domain name(s) (comma and/or space separated) (Enter 'c' to cancel):
步骤通过,
来分隔域名 - 可以使用以下命令来直接生成多个域名的证书 1$ sudo certbot certonly --webroot -w /var/www/example -d example.com -d www.example.com -w /var/www/thing -d thing.is -d m.thing.is
- 生成的证书通常保存在
/etc/letsencrypt/live/
目录下
注意:如果失败超过5次会被服务器屏蔽1小时
后记
以上操作完成后在pc端浏览器可正常读取证书并显示绿色锁,但在部分移动端浏览器上可能提示证书无效,原因可以参考合并SSL服务器证书和CA包(证书链文件) 简单来说,可以通过合并SSL服务器证书和CA包(证书链文件) 即:复制fullchain.pem里的内容至cert.pem,重启服务器即可
- 开发人员看测试之TDD和BDD
- AngularJS入门心得1——directive和controller如何通信
- AngularJS入门心得2——何为双向数据绑定
- AngularJS入门心得3——HTML的左右手指令
- AngularJS入门心得4——漫谈指令scope
- Enterprise Library深入解析与灵活应用(8):WCF与Exception Handling AppBlock集成[上]
- 苹果就“电池门”公开致歉;微信下拉任务栏新增小游戏;美团打车进入北京
- 新华三《中国城市数字经济指数白皮书》:深圳数字经济发展水平国内居首
- NodeMCU模块写入MicroPython固件
- 如何证明Application Domain的隔离性
- Enterprise Library深入解析与灵活应用(8):WCF与Exception Handling AppBlock集成[下]
- 我所理解的Remoting(1):Marshaling & Activation[上篇]
- oracle 12c 常见报告获取-AWR
- 人人公司收购美国卡车社区 Trucker Path,未来或探索无人驾驶
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法