使用 acme.sh 配置 https 免费证书
官方文档
安装acme.sh
curl https://get.acme.sh | sh
如果此方式安装失败,可以使用 git 安装
git clone https://github.com/acmesh-official/acme.sh.git
cd ./acme.sh
./acme.sh --install
安装过程中会自动为你创建 crontab 定时任务, 每天 0:15 自动检测所有的证书, 如果快过期了, 需要更新, 则会自动更新证书crontab -l
15 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null
创建 一个 bash 的 alias, 方便使用: alias acme.sh=~/.acme.sh/acme.sh
生成证书
单域名:
acme.sh --issue -d yourdomain.com --webroot /home/wwwroot/blog/
可以设置多个域名:
acme.sh --issue -d yourdomain.com -d www.yourdomain.com --webroot /home/wwwroot/blog/
只需要指定域名,并指定域名所在的网站根目录。acme.sh 会全自动的生成验证文件,并放到网站的根目录,然后自动完成验证, 最后又自动删除验证文件。
安装证书
生成证书后,将证书安装到Nginx。
默认生成的证书都放在安装目录下: ~/.acme.sh/
,这个目录一般来说不能让nginx直接使用,所以我们需要将证书放到一个指定的目录:/usr/local/nginx/ssl
mkdir /usr/local/nginx/sslacme.sh --installcert -d yourdomain.com --key-file /usr/local/nginx/ssl/yourdomain.com.key --fullchain-file /usr/local/nginx/ssl/yourdomain.com.crt --reloadcmd "service nginx force-reload"
请注意:reloadcmd非常重要。该证书可以自动更新,但是如果没有正确的"reloadcmd",该证书可能无法刷新到您的服务器,那么您的网站将无法在60天内显示更新的证书。
配置Nginx
server {listen 443;server_name yourdomain.com;index index.html index.htm index.php;root /data/wwwroot/blog;#ssl on; #如果硬性要求全部走https协议,这里开启ssl onssl_certificate /usr/local/nginx/ssl/yourdomain.com.crt;ssl_certificate_key /usr/local/nginx/ssl/yourdomain.com.key;#ssl性能调优#nginx 1.13.0支持了TLSv1.3,TLSv1.3相比之前的TLSv1.2、TLSv1.1等性能大幅提升ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;ssl_prefer_server_ciphers on;ssl_session_timeout 10m;#使用ssl_session_cache优化https下Nginx的性能ssl_session_cache builtin:1000 shared:SSL:10m;#OCSP Stapling 开启。OCSP是用于在线查询证书吊销情况的服务,使用OCSP Stapling能将证书有效状态的信息缓存到服务器,提高 TLS 握手速度ssl_stapling on;#OCSP Stapling 验证开启ssl_stapling_verify on;location ~ [^/]\.php(/|$) {fastcgi_pass unix:/tmp/php-cgi.sock;fastcgi_index index.php;include fastcgi.conf;}location / {if (!-e $request_filename) {rewrite ^(.*)$ /index.php?s=/$1 last;break;}}location /nginx_status{stub_status on;access_log off;}location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)${expires 30d;}location ~ .*\.(js|css)?${expires 12h;}location ~ /.well-known {allow all;}location ~ /\.{deny all;}error_log /home/wwwlogs/error.www.codelife.log;}
配置完后验证 nginx 配置有没有错误:
nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
没有错误重启 nginx :service nginx restart
手动更新证书:acme.sh --cron -f
目前由于 acme 协议和 letsencrypt CA 都在频繁的更新, 因此 acme.sh 也经常更新以保持同步.所以为了省心省力,最好还是设置一下软件的自动更新:acme.sh --upgrade --auto-upgrade
使用 acme.sh 配置 https 免费证书相关推荐
- Ubuntu 17.04 编译安装 Nginx 1.9.9 配置 https 免费证书
Ubuntu 17.04 编译安装 Nginx 1.9.9 配置 https 免费证书 安装 Nginx 安装依赖 $ apt-get update $ apt-get install build-e ...
- 使用acme.sh配置https证书
想使用免费的https证书怎么办?想自动给证书续期怎么办? Let's Encrypt 是一家免费.开放.自动化的证书颁发机构(CA),为公众的利益而运行. 它是一项由 Internet Securi ...
- Windows IIS配置Https免费证书的最简单方法(借助Certify)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.概念介绍 二.配置步骤 三.补充介绍:付费证书的大致配置步骤 一.概念介绍 (1)HTTPS和HTTP的区别 Http ...
- LINUX服务器最简洁的HTTPS免费证书配置方法
注意:该方法已在多台服务器配置了免费的https证书,无论是更新还是第一次配置都运行成功:由于是免费版,每个证书都只有三个月的有效期,也无法保证安全和稳定性,所以只建议做测试用,客户的项目需要时,请让 ...
- 使用acme.sh撸一个免费且自动更新的HTTPS证书
前言 一直想撸一下https,最近刚好有点空,就实现了一下.之前看过一篇教你快速撸一个免费HTTPS证书的文章,通过Certbot来管理Let's Encrypt的证书,使用前需要安装一堆库,觉得不太 ...
- acme.sh快速申请免费https证书
1.下载acme.sh curl https://get.acme.sh | sh -s email=my@example.com alias acme.sh=~/.acme.sh/acme.sh 2 ...
- https免费证书配置
https免费证书配置 背景 1.http 和 https 是什么? 简单来说,http 是一个传输网页内容的协议,比如你看到的 http 开头的网站 http://www.163.com,其网页上的 ...
- 基于 acme.sh 自动申请域名证书(群晖 Docker)
本文介绍如何使用 Docker 镜像 acme.sh,实现名证书自动申请和续签功能. acme.sh 可以从 letsencrypt 生成免费的证书,支持 Docker 部署,支持 http 和 DN ...
- 用acme.sh自动部署域名证书
用acme.sh自动部署域名证书 安装ACME 目前使用量最大的免费SSL证书就是Let's Encrypt,自2018-03开始,Let's Encrypt官方发布上线了免费的SSL泛域名证书,目前 ...
最新文章
- 安装oracle到create inventory时卡住了怎么办_「推荐」wacom数位板怎么用?教你如何正确的安装数位板驱动...
- python英文词云代码_使用python实现个性化词云的方法
- linux上安装fio教程,fio工具安装及使用
- 读书笔记007:《伤寒论》- 手少阴心经
- java beanutil 工具类_实现BeanFactoryAware来达到Spring静态方法获取Bean对象的BeanUtil工具类...
- mac securecrt程序无响应_在Mac上查看和终止进程的方法
- Oracle mysql 语句_Oracle 数据库常用操作语句大全
- 微型计算机技术 论文,微型计算机技术课程设计论文报告微机交通灯控制系统_毕业论文.docx...
- 将一张100元按如下要求C语言,aoa三一宝典(计算机二级考试)
- Linux驱动的ioctl函数简要说明
- 函数2——*args/**kwargs、作用域、函数的嵌套、关键字globa和nonlocal、函数的注释...
- 计算机领域媒体的分类有,多媒体信息主要有几种类型
- 小白如何入门计算机编程?
- 消息中间件 - ActiveMQ高级特性和用法-Mirrored Queue 镜像队列(了解即可)(十)
- 在cordova中处理原生键盘相关问题的总结,mark供参考
- springboot2.4开启HTTPS功能报DerInputStream.getLength(): lengthTag=111, too big异常
- 用计算机制作微课教学教案,微课教案设计
- ESP32 AT-MQTT 和阿里云进行数据传输
- 世茂以弘扬独特的工匠精神 辉映现代人居潮向
- win10安装 Genymotion ARM Translation教程
热门文章
- 关于Win10英文版安装中文语言包后,新用户登录还是英文界面的问题的解决方法
- 解决部署报错No main manifest attribute, in XXX.jar
- 媒体称中国残保金收入上百亿nbsp;支出…
- 木乃伊迷宫(存在一些bug,后面有改过的)
- 为什么要学计算机伦理学,应用伦理学的几个基本理论问题
- 4 OS command injection操作系统命令注入
- 游戏任务成就体系的实现(一):业务分析及技术架构
- lingo基础入门Day 7——lingo应用之运输问题与生产问题总结
- jdk安装与环境变量的配置(Win10亲身使用详细版)
- What's the DCOM?