ubuntu20.04.LTS申请Let‘s Encrypt免费证书并在SpringBoot上使用+解决缺少中间证书的问题(unable to verify the first certificat)

本文介绍了如何在Ubuntu系统上安装Python和Certbot,然后使用Certbot为域名申请LetsEncrypt的免费SSL证书。在申请过程中,需要验证域名所有权并创建DNSTXT记录。接着,将证书转换为PKCS#12格式以供SpringBoot使用,并解决在Node.js中遇到的证书验证问题。
摘要由CSDN通过智能技术生成

一、准备工作

1、我的ubuntu版本

在这里插入图片描述

2、安装Python 2.7.8(或更高版本).

sudo apt-get update
sudo apt-get install python3-pip

验证版本:
在这里插入图片描述

3、下载安装Let的加密客户端(certbot)

sudo apt install certbot

在这里插入图片描述
4、域名
Certbot生成Let’s Encrypt免费证书的过程中一定需要域名。Let’s Encrypt是一个公共的证书颁发机构,它提供免费的SSL证书服务,但要求用户必须拥有一个域名,并且能够通过域名验证来确认对该域名的控制权。这是为了确保证书只会被授予给实际拥有该域名的人或组织,以增强证书的安全性。所以在使用Certbot生成Let’s Encrypt证书之前,必须确保已经拥有并控制该域名。

这里我的域名是:nothingjira.nothing.tech
后续操作步骤将该域名替换成你自己的。

二、申请秘钥

1、为域名生成证书:sudo certbot certonly -d “域名” -d “*.域名” --manual --preferred-challenges dns --server https://acme-v02.api.letsencrypt.org/directory

sudo certbot certonly -d "nothingjira.nothing.tech" -d "*.nothingjira.nothing.tech" --manual --preferred-challenges dns --server https://acme-v02.api.letsencrypt.org/directory

2、在域名解析添加txt记录。

执行上面的命令后会提示你部署DNS TXT记录,如下:

Please deploy a DNS TXT record under the name:

_acme-challenge.nothingjira.nothing.tech.

with the following value:

Pst5u6gC1omx7heR0tscQS_rVYuhaxze3KR47wjb06Y

将name和value添加到txt记录:
在这里插入图片描述
过程中会提示查看txt记录是否成功生成,是即可下一步,全过程如下:
在这里插入图片描述

3、生成Key。Spring Boot需要PKCS#12格式的文件.这意味着您必须将密钥转换为PKCS#12密钥库(例如,使用OpenSSL)。

sudo openssl pkcs12 -export -in "/etc/letsencrypt/live/域名/cert.pem" -inkey "/etc/letsencrypt/live/域名/privkey.pem" -out "/etc/letsencrypt/live/域名/key.p12"

示例:

sudo openssl pkcs12 -export -in "/etc/letsencrypt/live/nothingjira.nothing.tech/cert.pem" -inkey "/etc/letsencrypt/live/nothingjira.nothing.tech/privkey.pem" -out "/etc/letsencrypt/live/nothingjira.nothing.tech/key.p12"

查看是否生成key.p12文件:
在这里插入图片描述

4、在SpringBoot中配置

在这里插入图片描述

5、在浏览器查看是否已经生效

在这里插入图片描述

三、在nodejs中调用接口,报错:“unable to verify the first certificate”

1、在服务器上检测证书链是否完整

在这里插入图片描述
GPT上查找产生无效的原因:
在这里插入图片描述
到这里已经猜到是缺少中间证书的原因。

2、在线工具检查链接

检查证书是否完整。
结果:
在这里插入图片描述

3、在Let’s Encrypt社区找答案

https://community.letsencrypt.org/t/unable-to-verify-the-first-certificate/140756
在这里插入图片描述
两者的区别:
在这里插入图片描述

4、在SpringBoot配置文件添加配置:

在这里插入图片描述

5、nodejs成功返回数据

在这里插入图片描述
附证书链原图:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Senye_ing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值