Let’s Encrypt 申请HTTPS证书流程「建议收藏」

Let’s Encrypt 申请HTTPS证书流程「建议收藏」准备工作:域名可供解析的服务器(或使用ngrok将需要生成证书的域名映射到具体的http服务器地址)申请官网地址:Let’sEncrypt、Certbot流程打开Certbot网址,选择使用服务器与操作系统,如下:使用如上命令在对应服务器安装好certbot后,使用:sudocertbotcertonly命令安装,certbot(实际上是certbot-au…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

准备工作:

  1. 域名
  2. 可供解析的服务器(或使用ngrok将需要生成证书的域名映射到具体的http服务器地址)

申请官网地址:Let’s EncryptCertbot

流程

  1. 打开Certbot网址,选择使用服务器与操作系统,如下:
    选择服务器与操作系统

  2. 使用如上命令在对应服务器安装好certbot后,使用:sudo certbot certonly命令安装,certbot (实际上是 certbot-auto ) 有两种方式生成证书:

    • standalone 方式: certbot 会自己运行一个 web server 来进行验证。如果我们自己的服务器上已经有 web server 正在运行 (比如 Nginx 或 Apache ),用 standalone 方式的话需要先关掉它,以免冲突。
    • webroot 方式: certbot 会利用既有的 web server,在其 web root目录下创建隐藏文件, Let’s Encrypt 服务端会通过域名来访问这些隐藏文件,以确认你的确拥有对应域名的控制权。

按如下步骤进行:

$ sudo certbot certonly

Saving debug log to /var/log/letsencrypt/letsencrypt.log
How would you like to authenticate with the ACME CA?
-------------------------------------------------------------------------------
1: Spin up a temporary webserver (standalone)
2: Place files in webroot directory (webroot)
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Plugins selected: Authenticator webroot, Installer None
Please enter in your domain name(s) (comma and/or space separated)  (Enter 'c'
to cancel): api.techeffic.com
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for api.techeffic.com
Select the webroot for api.techeffic.com:
-------------------------------------------------------------------------------
1: Enter a new webroot
-------------------------------------------------------------------------------
Press 1 [enter] to confirm the selection (press 'c' to cancel): 1
Input the webroot for api.techeffic.com: (Enter 'c' to cancel): /usr/local/yihui/
Waiting for verification...
Cleaning up challenges
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/api.techeffic.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/api.techeffic.com/privkey.pem
   Your cert will expire on 2018-03-06. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
- If you like Certbot, please consider supporting our work by:
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

需要注意的是,生成证书过程中,certbot会验证http://域名/.well-known/acme-challenge/28uFZcNfrnCeQObOvdZwKn_7dASGQckboRLns285zig,需要搭配服务器来完成认证,认证通过后,会生成对应的证书/私钥到指定目录,如上面所示:Congratulations字样。

试图进入这个目录查看时,会有权限限制,重新授权后查看发现证书已经被软连接到:

/etc/letsencrypt/archive/api.techeffic.com/

完整映射如下:
证书软连接

注意事项

  • 加载证书与private key时确保当前用户是有权限的
  • 证书只有90天权限,到期需要使用如下命令手动刷新证书
sudo certbot renew //这个必须到期后才会刷新成功
#certbot renew --force-renew //强制刷新,就算没到期也刷新
  • 使用下面命令测试是否可以正常更新
sudo certbot renew --dry-run

如果出现:
自动刷新证书
则表示可以正常更新,如果要自动更新,将更新命令加入系统任务,或使用如下命令:

sudo certbot renew --quiet --no-self-upgrade

增加通配符认证

Let’s Encrypt于20180314开始支持通配符CA认证,即可以一次性给一个根域名下的所有子域名颁发受信的CA证书(如:给*.exmple.com颁发证书后,test.exmple.com和demo.exmple.com都被信任)

有了这个特性,对用户来说方便多了。Let’s Encrypt的通配符认证是通过ACME v2实现的。以下是为域名申请证书的过程(参考:https://my.oschina.net/kimver/blog/1634575):

Certboot方式(不推荐)

使用与上面列出来的有点不同,我尝试用这种方法在申请过程出现下载jdk失败404错误,莫名其妙,所以不推荐用这种方法是正确的

  • 获取certbot-auto
# 下载wget https://dl.eff.org/certbot-auto
# 设为可执行权限
chmod a+x certbot-auto
  • 开始申请证书
# 注xxx.com请根据自己的域名自行更改
./certbot-auto --server https://acme-v02.api.letsencrypt.org/directory-d "*.xxx.com" -d "xxx.com" --manual --preferred-challenges dns-01 certonly

执行完这一步之后,会下载一些需要的依赖,稍等片刻之后,会提示输入邮箱,随便输入都行【该邮箱用于安全提醒以及续期提醒】
安装过程

执行到上图最后一步时,先暂时不要回车。申请通配符证书是要经过 DNS 认证的,接下来需要按照提示在域名后台添加对应的 DNS TXT 记录。添加完成后,先输入以下命令确认 TXT 记录是否生效:

$ dig -t txt _acme-challenge.xxx.com @8.8.8.8

确认生效后,回车继续执行,最后会输出Congratulations! 证书保存在/etc/letsencrypt/live/xxx.com/,校验证书信息,输入如下命令:

$ openssl x509 -in /etc/letsencrypt/live/xxx.com/cert.pem -noout -text

# 可以看到证书包含了 SAN 扩展,该扩展的值就是 *.xxx.com
...
Authority Information Access:
OCSP - URI:http://ocsp.int-x3.letsencrypt.org
CA Issuers - URI:http://cert.int-x3.letsencrypt.org/

X509v3 Subject Alternative Name:
DNS:*.xxx.com
...

到此

ACME.sh方式(我用这种方式成功了)

  • 获取acme.sh
    因为是安装在当前用户下,安装成功后,需要source ~/.bashrc
curl https://get.acme.sh | sh
  • 开始获取证书
    acme.sh强大之处在于,可以自动配置DNS,不用去域名后台操作解析记录了,我的域名是在阿里注册的,下面给出阿里云解析的例子,其他地方注册的请参考这里自行修改:传送门,请先前往阿里云后台获取App_Key跟App_Secret:传送门,然后执行以下脚本
# 替换成从阿里云后台获取的密钥
export Ali_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export Ali_Secret="jlsdflanljkljlfdsaklkjflsa"
# 换成自己的域名
acme.sh --issue --dns dns_ali -d zhuziyu.cn -d *.zhuziyu.cn

这里是通过线程休眠120秒等待DNS生效的方式,所以至少需要等待两分钟,正常情况下等待完成后,出现下面的内容
更新过程
到了这一步大功告成,撒花。

acme.sh比certbot的方式更加自动化,省去了手动去域名后台改DNS记录的步骤,而且不用依赖Python,墙裂推荐。

第一次成功之后,acme.sh会记录下App_Key跟App_Secret,并且生成一个定时任务,每天凌晨0:00自动检测过期域名并且自动续期。对这种方式有顾虑的,请慎重,不过也可以自行删掉用户级的定时任务,并且清理掉~/.acme.sh文件夹就行

参考资料

关于将证书复制到某个目录或更新问题,参考:使用 acme.sh 制作 HTTPS 证书

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/188550.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ftp工具哪个好用_客户端游戏人气排行榜

    ftp工具哪个好用_客户端游戏人气排行榜序言:随着互联网的不断普及、发展,越来越多的人在使用FTP软件,它被广泛的应用于网页制作、网站更新、资源共享、数据传输等多个方面。“工欲善其事,必先利其器”,面对现在多如牛毛的各种FTP软件,我们到底选择哪一款才能更好的帮助我们呢?为此我们将针对当前比较流行的十款FTP客户端软件进行横向评测,通过下面的评测我们将会给出圆满的答案,希望能够给广大读者提供指引和帮助。导读:☆:

    2022年10月19日
    0
  • 黑盒测试方法的选择策略_选择策略

    黑盒测试方法的选择策略_选择策略

    2022年10月3日
    0
  • vue 如何关闭 eslint 检查

    vue 如何关闭 eslint 检查在实际开发过程中,eslint的作用不可估量,诸如:1.审查代码是否符合编码规范和统一的代码风格;2.审查代码是否存在语法错误;But,对于初学者来说,这个功能极其不友好,各种问题层出不穷,让很多初学者头疼不已,我们有没有办法关掉它,等适当时机在启用它呢,答案是肯定的。不同vuecli版本创建工程的时候,稍微有些差别,要仔细甄别,我的vuecliv4.5.9方案一:vue脚手架创建工程的时候,不要选择Linter/Formatter选项,(那如何选择启用,请参照方案二)

    2022年5月20日
    54
  • 股票软件c++源代码

    股票软件c++源代码源码的部分配套开发文档http://item.taobao.com/auction/item_detail-0db1-4c3ffde99155fe1747132008fd2ece42.htm

    2022年6月16日
    31
  • JVM调优工具「建议收藏」

    JVM调优工具「建议收藏」JVM调优工具Jconsole:jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用。对垃圾回收算法有很详细的跟踪。JProfiler:商业软件,需要付费。功能强大。VisualVM:JDK自带,功能强大,与JProfiler类似。推荐。如何调优观察内存释放情况、集合类检查、对象树上面这些调优工具都提供了强大的功能,但是总的来说一般分为以下几类功能堆信息查…

    2022年6月1日
    29
  • 特殊符号大全复制_特殊符号大全爱好者工具讲解[通俗易懂]

    特殊符号大全复制_特殊符号大全爱好者工具讲解[通俗易懂]前言:明天将会举办第2期微信昵称悬赏令,第1期结果已公布,如果您还没准备好,可以先准备一下哦。下面是第1期的结果放榜-微悬令第1期活动结束,奖金会陆续发放给获奖同学!漂亮的网名昵称符号让我们在游戏或者其它平台里面显得与众不同,为了实现这样的目标,小编制作了网名在线生成器,这是一整套的工具,可以让我们快速定制出与众不同的符号特殊符号大全爱好者首先我们打开昵称符号加字器,这是个非常有用的网名…

    2022年6月11日
    93

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号