在liunx
下申请ssl
证书一直是用 certbot-auto
这个脚本,在乌班图20.04
时彻底移除了python2
,导致了此脚本彻底不可用,在其官网上有非常详细的介绍以及解决方案https://certbot.eff.org
这个链接以及说明了所有问题,但是鉴于这是一篇水文,所以我得啰嗦一下步骤。动手能力强的,看到这里可以跑了,不用看我下面的内容。
certbot
具有时效性,申请一次有效期为90天
,之后需要续期证书,所以下面有自动更新的动作
一、更新snapd
sudo snap install core
sudo snap refresh core
二、安装certbot
sudo snap install --classic certbot
创建快捷方式(这一步不是必须的)
sudo ln -s /snap/bin/certbot /usr/bin/certbot
三、申请证书
前置条件(不看这个直接往后操作的,坑了别怪我)
1、需要将你要申请证书的域名增加a记录
解析到当前运行certbot
的服务器ip
上,不然会导致证书申请失败
2、certbot
可能会占用443端口
(未验证此条内容)
使用certbot
申请证书有2种方式:
第一种方式:停止web服务器
了再申请证书,这种会影响当前正在提供的http
服务
certbot certonly --standalone
第二种方式:不停止web服务器
申请证书,即不影响当前正在提供的http
服务
certbot certonly --webroot
对于初次网站可以选择第一种。我拿第一种方式示例。
第一步:输入一个可用邮箱,这里会接受一些重要通知
第二步:这里同意协议,选择y
第三步:不允许公开邮箱地址,这里选择n
第四步:输入要申请的域名
第五步:输入域名之后成功颁发证书
第六步:测试任务脚本的有效性
sudo certbot renew --dry-run
注意:
1、记得在输出的记录中把证书目录记下来,通常都在/etc/letsencrypt/live/你的域名/
2、记得给相关证书增加权限,无权限的时候通常会有一些奇怪的问题,现象是证书无效
sudo chmod -R 777 /etc/letsencrypt/
附上一个nginx使用此证书的例子
ssl_certificate /etc/letsencrypt/live/你的域名/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/你的域名/privkey.pem;
四、用插件的方式申请证书
如有必然需要,可以在申请证书的时候增加插件功能,直接前往
https://certbot.eff.org,按需选择即可。
apache
-
一键申请证书并配置
ssl
sudo certbot --apache
-
只申请证书
sudo certbot certonly --apache
nginx
-
一键申请证书并配置
ssl
sudo certbot --nginx
-
只申请证书
sudo certbot certonly --nginx
其他的几种http
服务器自己去官网上看吧,我实在是水不动了。
附上一个证书转换的过程,其实大概率用不到证书转换,用上面的示例即可通用了。
查看PEM编码证书
openssl x509 -in cert.pem -text -noout
openssl x509 -in cert.cer -text -noout
openssl x509 -in cert.crt -text -noout
查看DER编码证书
openssl x509 -in certificate.der -inform der -text -noout
转换证书格式
openssl x509 -in cert.pem -inform pem -outform der -out cert.der
openssl rsa -in privkey.pem -out privkey.key
openssl x509 -in fullchain.pem -out fullchain.crt
到这里水文结束
评论区