云网牛站
所在位置:首页 > Linux云服务器 > 使用Bash脚本在Tomcat上自动续订Letsencrypt SSL证书的方法

使用Bash脚本在Tomcat上自动续订Letsencrypt SSL证书的方法

2019-03-01 16:11:33作者:叶云稿源:云网牛站

本文将介绍如何使用Bash脚本在Tomcat上自动续订Letsencrypt SSL证书。下面这个Bash脚本来将续订过程设置为自动,通过避免重复出现相同的手动过程,让操作更便捷简单。

 

基本条件

你需要安装几个软件包才能使此过程正常运行,要在续订时收到电子邮件警报,你需要安装提供邮件命令的软件包。

1、对于CentOS系统

运行以下命令:

# wget https://dl.eff.org/certbot-auto -P /usr/local/bin

# chmod a+x /usr/local/bin/certbot-auto

如果有活动防火墙,例如firewalld,请在防火墙上打开https端口:

# firewall-cmd --add-service https --permanent

# firewall-cmd --reload

要获取电子邮件警报,请安装mailx包:

$ sudo yum -y install mailx

2、对于Ubuntu系统

在Ubuntu服务器上运行这些命令以满足所有要求:

# wget https://dl.eff.org/certbot-auto -P /usr/local/bin

# chmod a+x /usr/local/bin/certbot-auto

如果有防火墙,请打开https端口,这是Letsencrypt在更新证书时经常使用的端口:

$ sudo ufw allow https

参考:Debian、Ubuntu、Linux Mint系统中的UFW防火墙入门教程

要获取电子邮件警报,请安装mailx包:

$ sudo apt-get -y install mailutils

 

Bash脚本在Tomcat上自动续订Letsencrypt SSL证书的方法

1、使用脚本

现在已经设置了所有内容,clone此脚本,修改它,使其可执行并为其设置cron作业。

首先clone存储库:

$ git clone https://github.com/jmutai/tomcat-letsencrypt.git

$ cd tomcat-letsencrypt

一旦cloned了repo或下载了脚本,在准备好执行脚本之前,你需要定义变量,要编辑的文件是tomcat-letsencrypt-autorenew.sh:

TOMCAT_DOMAIN=""

TOMCAT_KEY_PASS=""

CERTBBOT_BIN="/usr/local/bin/certbot-auto"

EMAIL_NOTIFICATION="email_address"

然后保存更改:

$ chmod +x tomcat-letsencrypt-autorenew.sh

$ sudo cp tomcat-letsencrypt-autorenew.sh /usr/local/bin

你需要配置tomcat server.xml文件,请看下面的配置tomcat服务器部分,SSL文件应位于/etc/ssl/${DOMAIN}.jks上。

然后通过运行以下命令来执行脚本:

$ sudo su -

# /usr/local/bin tomcat-letsencrypt-autorenew.sh

如果你不需要电子邮件通知,可以跳过send_email_notification函数。

2、配置tomcat服务器

# vim /etc/tomcat/server.xml

确保以下部分已注释掉:

<!---

<Connector port="8080" protocol="HTTP/1.1"

 connectionTimeout="20000"

 redirectPort="8443" />

-->

配置连接器以使用共享线程池:

<Connector executor="tomcatThreadPool"

 port="8080" protocol="HTTP/1.1"

 connectionTimeout="20000"

 redirectPort="8443" />

接下来是在端口8443上定义SSL HTTP/1.1连接器:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"

 maxThreads="150" SSLEnabled="true" scheme="https" secure="true"

 keystoreFile="/etc/ssl/odk2.domain.com.jks"

 keystorePass="ughubieVahfaej5"

 clientAuth="false" sslProtocol="TLS" />

使用上述配置,http到https重定向将自动为应用程序完成,可以在以下地址访问:

http://server_IP_address:8080

Manager App:

http://server_IP_address:8080/manager/html

3、设置cron工作

要每天运行一个cron作业,请检查是否需要续订证书:

# crontab -e

增加:

30 3 * * * /usr/local/bin tomcat-letsencrypt-autorenew.sh

这意味着它将每天凌晨3点运行以进行检查,如果证书未到期续订,则脚本将正常退出。

 

相关主题

在Ubuntu 18.04服务器上安装Apache Tomcat 9.0.16的方法

精选文章
热门文章