用acme.sh给网站域名,申请免费SSL永久证书(自动续期)

news/2024/5/20 4:15:01/文章来源:https://blog.csdn.net/weixin_52270081/article/details/126777550

一:简介

申请ssl证书,即https有很多,有免费的,也有收费的。如第三方域名管理cloudflare也可以自动添加使用https,而且永久。

但是由于有些服务,需要在服务器使用自签证书,所以需要自己申请。免费的可以使用certbot,也可以是使用zeroSSL。

Cerbot可以参考我以前的文章:Certbot申请免费SSL证书

这里,介绍使用acme.sh生成免费的ssl证书,其完整实现了acme协议,并且由纯Shell脚本语言编写,没有过多的依赖项,安装和使用都非常方便。

对于zerossl官网,需要指出的是,用户可以在控制台直接申请证书,但免费用户最多只能申请3个,而使用ACME申请zeroSSL证书则没有数目限制。

acme.sh官方gitlhub地址: https://github.com/acmesh-official/acme.sh

二:安装acme.sh

安装过程不会污染任何功能和文件,所有的修改都限制在安装目录中:~/.acme.sh/。
以下安装方式,把 my@example.com 修改成自己的邮箱。

1:在线安装方式

安装很简单, 一个命令:

curl  https://get.acme.sh | sh -s email=my@example.com

或者

wget -O -  https://get.acme.sh | sh -s email=my@example.com

这里的-s参数指定的邮箱可以关联到已有的zeroSSL账号。关联成功后,通过acme.sh生成的zeroSSL证书会在zeroSSL网站的控制面板上显示。

2:其他安装方式

用git仓库方式

git clone https://github.com/acmesh-official/acme.sh.git
cd ./acme.sh
./acme.sh --install -m my@example.com

安装完成后,在账号home目录,会生成一个.acme.sh的隐藏目录。

三:颁发证书

注:安装完成后,需要退出当前命令终端,重新登录,才可以使用acme.sh命令

这里已我的网站域名 test.ywbj.cc 做为测试。

配置nginx

server {listen 80;server_name  test.ywbj.cc;root   /www/test.ywbj.cc;location / {index  index.html index.htm index.php;}
}

配置域名目录为/www/test.ywbj.cc,在此目录创建一个index.html文件测试,然后重启nginx。
配置完,浏览器打开test.ywbj.cc,可以看到域名提示不安全,没有https.
在这里插入图片描述

1:http方式颁发证书给域名

一般情况下,都是这种。如果没有服务器,请使用dns手动。

单个域名

acme.sh --issue -d test.ywbj.cc -w /www/test.ywbj.cc

-d 需要签证的域名。
-w参数说明:
在验证域名的所有权时,具体来说,acme.sh会在网站的根目录下创建.well-known目录,然后再在其中生成验证文件。因此,-w参数指定的路径实际为域名之下,/.well-known位置对应的路径。用与验证此域名是属于你的。

下面图显示,已经成功颁发证书。
在这里插入图片描述

如果有多个域名,同一个证书中的多个域。

acme.sh --issue -d example.com -d www.example.com -d cp.example.com -w /home/wwwroot/example.com

证书生成完后将放置在~/.acme.sh/example.com/

证书将每60天自动更新一次。

如下:这里显示的是我test.ywbj.cc的目录下。
在这里插入图片描述

2:手动 dns 方式颁发证书

手动 dns 方式, 手动在域名上添加一条 txt 解析记录, 验证域名所有权.

这种方式的好处是, 你不需要任何服务器, 不需要任何公网 ip, 只需要 dns 的解析记录即可完成验证. 坏处是,如果不同时配置 Automatic DNS API,使用这种方式 acme.sh 将无法自动更新证书,每次都需要手动再次重新解析验证域名所有权。

acme.sh  --issue  --dns   -d mydomain.com \--yes-I-know-dns-manual-mode-enough-go-ahead-please

然后, acme.sh 会生成相应的解析记录显示出来, 你只需要在你的域名管理面板中添加这条 txt 记录即可.

等待解析完成之后, 重新生成证书:

acme.sh  --renew   -d mydomain.com \--yes-I-know-dns-manual-mode-enough-go-ahead-please

dns 方式的真正强大之处在于可以使用域名解析商提供的 api 自动添加 txt 记录完成验证.

acme.sh 目前支持 cloudflare, dnspod, cloudxns, godaddy 以及 ovh 等数十种解析商的自动集成.

四:将证书安装到 Apache/Nginx 等

1,nginx

生成证书后,需要将证书安装/复制到您的 Apache/Nginx 或其他服务器。必须使用此命令将证书安装到目标文件,请勿使用~/.acme.sh/文件夹中的证书文件,它们仅供内部使用,文件夹结构将来可能会更改。

证书目录,自己选择好,我这里安装目录为/etc/nginx/ssl/,所以执行以下命令。

acme.sh --install-cert -d test.ywbj.cc \
--key-file       /etc/nginx/ssl//key.pem  \
--fullchain-file /etc/nginx/ssl/cert.pem \
--reloadcmd     "service nginx force-reload"

在这里插入图片描述

2:apache:

如果是apache的话,用以下命令即可

acme.sh --install-cert -d example.com \
--cert-file      /path/to/certfile/in/apache/cert.pem  \
--key-file       /path/to/keyfile/in/apache/key.pem  \
--fullchain-file /path/to/fullchain/certfile/apache/fullchain.pem \
--reloadcmd     "service apache2 force-reload"

五:配置nginx的ssl

更改nginx配置文件,加上监听443端口,和配置ssl_certificate和ssl_certificate_key到指定目录即可。

server {#listen 80;listen 443;server_name  test.ywbj.cc;root   /www/test.ywbj.cc;ssl_certificate /etc/nginx/ssl/cert.pem;ssl_certificate_key /etc/nginx/ssl/key.pem;location / {index  index.html index.htm index.php;}
}

重启nginx,在浏览器再次输入https://test.ywbj.cc/,可以看到已经成功。
查看详细,可以看到是ZeroSSL颁发的证书,有效期为3个月。
在这里插入图片描述
目前证书在 60 天以后会自动更新, 你无需任何操作. 今后有可能会缩短这个时间, 不过都是自动的, 你不用关心。你也可以更改这个。

安装证书时,已经自动在crontab定时任务添加了任务。

crontan -l查看定时任务,可以看到acme.sh的定时任务。

crontan -l2 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null

到这里,nginx的ssl自签证书就已经完成了。

六:acme.sh其他命令(扩展)

1:查看已安装证书信息

acme.sh --info -d example.com
# 会输出如下内容:
DOMAIN_CONF=/root/.acme.sh/example.com/example.com.conf
Le_Domain=example.com
Le_Alt=no
Le_Webroot=dns_ali
Le_PreHook=
Le_PostHook=
Le_RenewHook=
Le_API=https://acme-v02.api.letsencrypt.org/directory
Le_Keylength=
Le_OrderFinalize=https://acme-v02.api.letsencrypt.org/acme/finalize/23xxxx150/781xxxx4310
Le_LinkOrder=https://acme-v02.api.letsencrypt.org/acme/order/233xxx150/781xxxx4310
Le_LinkCert=https://acme-v02.api.letsencrypt.org/acme/cert/04cbd28xxxxxx349ecaea8d07
Le_CertCreateTime=1649358725
Le_CertCreateTimeStr=Thu Apr  7 19:12:05 UTC 2022
Le_NextRenewTimeStr=Mon Jun  6 19:12:05 UTC 2022
Le_NextRenewTime=1654456325
Le_RealCertPath=
Le_RealCACertPath=
Le_RealKeyPath=/etc/acme/example.com/privkey.pem
Le_ReloadCmd=service nginx force-reload
Le_RealFullChainPath=/etc/acme/example.com/chain.pem

2:更新 acme.sh

#升级 acme.sh 到最新版 :acme.sh --upgrade#如果你不想手动升级, 可以开启自动升级,之后, acme.sh 就会自动保持更新了.
acme.sh  --upgrade  --auto-upgrade#你也可以随时关闭自动更新:
acme.sh --upgrade  --auto-upgrade  0

3:颁发ECC证书

单域ECC证书

acme.sh --issue -w /home/wwwroot/example.com -d example.com --keylength ec-256

SAN多域ECC证书

acme.sh --issue -w /home/wwwroot/example.com -d example.com -d www.example.com --keylength ec-256

keylength上面的参数。

有效值为:
ec-256(prime256v1,“ECDSA P-256”)
ec-384(secp384r1,“ECDSA P-384”)
ec-521(secp521r1,“ECDSA P-521”,Let’s Encrypt 尚不支持。)

4:更新证书

自己更新证书

#强制更新证书:
acme.sh --renew -d example.com --force#或者,对于 ECC 证书:
acme.sh --renew -d example.com --force --ecc

要停止更新证书,您可以执行以下操作从更新列表中删除证书:

acme.sh --remove -d example.com [--ecc]

证书/密钥文件不会从磁盘中删除。

您可以自己删除相应的目录(例如~/.acme.sh/example.com)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_777629.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java旅游网站毕业论文_旅游网站的设计与实现

摘 要 现代社会是信息社会。随着计算机网络技术、数据库技术、管理技术的发展,对信息的处理和利用已经深入到人类生活的各个方面。旅游是人们生活不可分割的组成部分,旅游业已成为当今世界上发展势头最强劲的产业,它是集吃、住、行、游、购、…

centos php 绑定域名解析,Linux系统下网站站点部署优势之:域名泛解析绑定

做过站群或绑定多个二级域名的技术人员都知道,在windows下如果可绑定多个二级域名,一般都会用到默认站点的空主机头,只有绑定了80端口的空主机头,才可实现多个二级域名的绑定,或指定目录或301转发。但是,服…

如何查看网站服务器更新信息,如何实现本地修改网站,服务器上的网站跟着自动更新?...

用DreamweaverCS4的自动上传功能呀!详细步骤(以DreamweaverCS4为例)1、点击DreamweaverCS4(以下简称DW)工具栏上的站点按钮,选择“新建站点”2、选中“高级”选项卡后,输入站点名称、本地路径等信息,在HTTP一栏中,输入…

Winform 程序以POST形式访问网站

Winform 程序以POST形式访问网站 本例介绍了Winform程序发送POST请求访问页面,主要使用到了HttpWebRequest和HttpWebResponse这两个对象。 程序主要代码如下: 代码 1 using System.Net; 2 using System.IO; 3 4 5 //创建HttpWebRequest对象 6 …

网站设计欣赏:45+靓丽的蓝绿色主题网站作品【下篇】

网站给用户留下第一印象的既不是网站丰富的内容,也不是网站合理的布局,而是网站的色彩。色彩给人的视觉效果最明显,一个网站设计成功与否,在某种程度上就取决于设计者对色彩的运用和搭配。这篇文章搜集了45靓丽的蓝色和绿色主题网…

重定向网站的几种简单方法

最近需要关闭一个网站,当用户输入这个网站的所有网址的时候,重定向指定的页面。当跳转到指定页面的时候,30s之后再次跳转到另外一个网站的首页。 1.方法一: 在IIS 6上面找到将要关闭的网站,右键属性,打开Ho…

win2003 sp2+iis 6.0上部署.net 2.0和.net 4.0网站的方法

网站环境 IIS6.0,操作系统Windows server2003 sp2,服务器之前已经部署了.net 2.0和asp的网站,现在要部署新开发的.net 4.0网站.本来认为很简单,却遇到了很多问题,下面详细描述下过程: 1.官网下载.net framework4.0,下载地址:http://www.micro…

SP2010开发和VS2010专家食谱--第二章节--工作流(1)--创建带有初始表单的网站工作流...

上一篇文章是没有人参与的顺序工作流的好例子。我们这次创建自己的贷款应用程序审批系统。本文章中,我们将创建网站工作流,完成我们的贷款应用程序审批过程。因为网站工作流并不与任何列表关联,这里没有输入数据和启动工作流的开箱即用表单。…

网站服务器到期后 内容释放,服务器到期后多久释放

服务器到期后多久释放 内容精选换一换自助解封配额根据您选择的业务规模和购买时长计费。当前仅以下区域的公网IP可以使用自助解封功能:华北华东华南自助解封配额提供包周期(3个月、6个月或1年)预付费计费模式,使用越久越便宜。包周期计费按照订单的购买…

Nutch 2.2+MySQL+Solr4.2实现网站内容的抓取和索引

原文地址: http://blog.sina.com.cn/s/blog_3c9872d00101p4f0.html Nutch 2.2.1发布快两月了,该版本与Nutch之前版本相比,有较大变化,特别是与MySQL联合应用的安装和配置过程有不少地方容易出错。本人在安装过程中也遇到了不少麻烦…

长尾词推广系统推荐乐云seo_SEO笔记分享---网站关键词优化(三)

今天主要和大家分享关于SEO关键词优化的三个问题:1 选择关键词需要注意什么2 写网页内容需要注意些什么?3 新站如何快速获得关键词排名大家喜欢的话可以关注我,每天分享关于SEO的知识,我们一起学习及进步选择关键词需要注意什么经…

php中seo优化怎么做,php怎么seo优化

现在SEO基本上已经是在广泛的应用了,php程序的企业网站也越来越多,其实我之前一直喜欢用asp的,但是发现很多国外的空间现在不支持asp,所以也就研究了一下php,网站建好,当然也想要有一个好的网站排名&#x…

windows 网站迁移linux,Windows迁移Linux问题集锦

1)‘_wcsicmp’在此作用域中尚未声明#ifdef WIN32#define _tcsicmp _wcsicmp#else#define _tcsicmp wcscasecmp#endif2)_stricmp 在此作用域中尚未声明#include 将_stricmp改成strcasecmp3)atoi的wchar版本不存在,#define _ttoi _wtoi改成使用#d…

python爬虫爬取汽车网站外型图片

我选择的起始网址:http://www.hao123.com/auto/brand 当你随便选择一个车牌的选框( 不要 同时选择多个选框)你就会发现每个车牌对应一个网址 每个网址的区别就是数字不同 比如选中奥迪时对应的网址:https://car.58che.com/brand/…

发现了个非常不错的OJ题目分类网站

网上瞎逛发现了一个东华大学的非常不错的OJ题目分类网站,把好些有名的OJ系统上的题目分别按知识点和难易程度进行了分类,非常适合那些希望有针对性做题的同学。同时针对每一个题目还配有相应的博客。http://acm.dhu.edu.cn/search3/index.jsp 转载于:htt…

配置ISA Server以创建站点到站点××× 连接之三 启用连接(接续之二)

在本练习中,您将在两个 ISAServer 阵列之间测试和使用站点到站点 连接。注意:本实验室练习使用以下计算机:Denver - Florence - Berlin - Istanbul 本次实验的目的,是启使用前两个步骤所建立的站点到站点连接的配置在 Florence 计…

asp.net 2.0 网站导航控件

asp.net 2.0 网站导航控件 尊重作者,请保留 http://www.it55.com/include/FCKeditor/editor/ 链接字样。 站点导航控件可以让你的网站结构清晰、易操作性更强,本节主要涉及asp.net 2.0新特性:站点导航控件。 站点导航控件包括:Si…

MOSS2007网站设置

11.9 网站设置 在“工作组网站”首页,单击“网站操作→网站设置”链接,打开“网站设置”页,如图11-112所示。图11-112 网站设置页11.9.1 网站信息 在“网站信息”部分,列出了当前网站的URL,表示这是对那个网站或者是对…

开发第一个动态网站——链接数据库

这是一个用纯jsp写的一个和数据库打交道的的例子.是在这篇文章的基础上改的.http://nileader.blog.51cto.com/1381108/306292 既然要和数据库打交道了,首先肯定是要建立数据库。这里我们选择mysql数据库。(数据库的选择不是一个限制条件&am…