网站内容自动更新(从自己摸索到找到国内的免费证书到选购正式的收费证书 )

优采云 发布时间: 2021-11-20 17:18

  网站内容自动更新(从自己摸索到找到国内的免费证书到选购正式的收费证书

)

  最近公司网站想用https,从自己摸索到找国内免费证书再到购买官费证书,老板终于说:太贵了!不要。听老板一脸茫然地提到Let's Encrypt证书,没办法,就用它吧。之前对国外发行的纯免费证书有一些了解,但是我觉得世界上没有免费的午餐,免费和收费之间肯定有差距。所以,硬着头皮开始修补 Let's Encrypt 证书。

  前言

  Let's Encrypt 作为新的证书颁发机构,是免费、自动和开放的。这三点对于个人用户来说尤为重要。不用说,它是免费的,它节省了很多过程和麻烦。目前官网推荐的获取安装方式是certbot,只需简单的运行一些命令,进行一些配置即可。

  前提

  1.需要一个域名,会为指定的域名生成证书。(填写IP会报不支持的错误)

  1. 需要在域名指向的服务器上可以访问https。(否则会报找不到443端口的错误)

  2.需要linux环境。

  部署

  获取让我们加密

  ##获得

  获取

  ##设为可执行

  chmod a+x certbot-auto

  执行自动部署

  ./certbot-auto

  部署过程中会下载很多依赖包,不用紧张。如需确认,(输入“y”)确认

  这里注意在执行过程中会卡在'Installing Python packages',稍等片刻下载Phthon lib

  如果等待很长时间都不动, 等不及了就修改pip下载源。

vi ~/.pip/pip.conf

#如果文件不存在则创建

mkdir ~/.pip

vi pip.conf

在里面修改或写入下面内容

[global]

index-url = http://mirrors.aliyun.com/pypi/simple/

[install]

trusted-host=mirrors.aliyun.com

重新执行自动部署

./certbot-auto

重新部署依然会在'Installing Python packages'卡一会儿,但不会很久,五分钟以内吧。

  依赖包下载完成后,会进入交互界面,依次是:填写邮箱、域名(多个域名用空格或逗号隔开)、确认条款、验证域名所有权(这一步可以选择第一个方法,手动选择tomcat的根目录)

  执行成功后会显示

  恭喜!您的证书和链已保存在

  /etc/letsencrypt/live//fullchain.pem。您的证书将

  于 2016-10-05. 到期 获取此版本的新版本或调整版本

  证书,只需再次运行 certbot-auto 即可。到

  非交互式更新*所有*您的证书,运行

  “certbot-自动更新”

  这时候生成的证书文件(.pem)已经在如下路径

  /etc/letsencrypt/

  #中使用的主文件(.pem)

  /etc/letsencrypt/live/xxxxx(域名)/

  自动续订

  Let's Encrypt 申请的证书有效期为三个月。可以在合约到期前手动续约,也可以编写正则脚本任务自动续约。感觉手动麻烦,写了个简单的更新脚本。

  1、脚本

  #/bin/sh

#续期 说明:只用renew的话,会先检查证书是否需要更新,大概是距离到期还有三天或者十几天之内才会执行更新,否则会提示不需要更新。(昨天更新了证书,今天直接用renew,提示不允许更新)

#这里方便测试,增加参数--force-renew,能够强制立即更新(但好像也会有检查,时间会变短,比如我刚才更新过了,马上再次执行会报错并提示不需要更新)。

./certbot-auto renew --force-renew

#生成p12

cd /mnt/web/letsTemp && openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out fullchain_and_key.p12 -name tomcat -passin passyourPKCS12pass -passout pass:yourPKCS12pass

#移动新生成的证书文件

cp /etc/letsencrypt/live/yourDomain/fullchain.pem /mnt/web/letsTemp

cp /etc/letsencrypt/live/yourDomain/privkey.pem /mnt/web/letsTemp

#生成jks文件

#备份并删除原jks文件

mv /mnt/web/letsTemp/MyDSKeyStore.jks /mnt/web/letsTemp/MyDSKeyStore`date '+%Y-%m-%d'`.jks

cd /mnt/web/letsTemp && keytool -importkeystore -deststorepass yourKeyPass -destkeypass yourKeyPass -destkeystore MyDSKeyStore.jks -srckeystore fullchain_and_key.p12 -srcstoretype PKCS12 -srcstorepass yourPKCS12pass -alias tomcat

#重启服务器

/mnt/web/tomcat/tomcat8/bin/restartup.sh 

  2、定时任务

  有了脚本,就需要在Linux中添加一个定时执行脚本的任务。这里使用Linux自带的cron来处理这部分。

  crontab -e

  在打开的编辑器中添加以下内容(每月1日凌晨3点更新)

  0 0 3 * * sh /mnt/web/lets/ssl_auto_auth.sh >/dev/null 2>&1 &

  使用 Let's Encrypt 手动创建 https 证书

  Windows 应用程序免费 SSL 证书-Let's Encrypt

  Certbot:自动部署 Let's Encrypt 证书

  本文永久更新链接地址:

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线