神刀安全网

Tomcat 部署Let’s Encrypt让网站使用https

1:系统环境:

1.1:阿里云服务器,centos系统,使用uname -a,查看系统环境

Tomcat 部署Let’s Encrypt让网站使用https

本机环境

1.2:查看tomcat版本,执行  ./version.sh

Tomcat 部署Let’s Encrypt让网站使用https

tomcat版本

1.3:查看nginx版本,执行 nginx -v 

Tomcat 部署Let’s Encrypt让网站使用https

nginx版本

说说系统的具体应用,我的nginx服务器用于网站建设,放了好几个域名,用的都是80端口,tomcat服务器用于具体项目应用,用作微信小程序的后台服务器,用的是8080端口,由于微信小程序必须使用https证书,于是,需要把tomcat的8080,转到80端口是应用,

例如tomcat有个API:

192.168.1.125:8080/test

nginx有个域名:

http://www.bore.net

那我们需要做的

https://www.bore.net/test

这也是小程序要求的

2:系统目录,每个人的目录不一样,将下载的工具放在该文件夹下

Tomcat 部署Let’s Encrypt让网站使用https

我的工具目录

工具目录需要对应好,在写脚本的时候,需要获取目录,才能一一对应,脚本才可以使用

3:部署Let’s Encrypt

3.1:下载certbot-auto,使用命令

wget     https://dl.eff.org/certbot-auto

3.2:先设置为可执行,再运行命令,两条命令

chmod a+x certbot-auto

./certbot-auto

3.3:如何执行时候,发现执行过慢,可更换安装源,如何速度还可以,就跳过这步。

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

4:安装过程

4.1:选择https服务器,可以选择apache和nginx,我的是nginx,于是就选择2。

Tomcat 部署Let’s Encrypt让网站使用https

选择nginx

4.2:选择要加密的https网站

Tomcat 部署Let’s Encrypt让网站使用https

选择3号网站域名

本人有3个网站,目前对3号域名进行https安全访问。

4.3安装证书结果

Tomcat 部署Let’s Encrypt让网站使用https

安装结果

4.4:由上面的信息看到,我们的安装信息是不完整的,有问题的,证书也没成功,解决方式如下:

对于 Nignx ,certbot 使用 webroot 的插件获取 SSL。这款插件会在 [your webroot path]/.well-known 生成特殊的文件,在申请证书时,Let’s Encrypt 服务会通过 Http 来访问此文件,以签证服务器,所以在使用 certbot 获取证书之前,你需要确保此目录能被外界使用访问。

可以先不修改 nginx 的配置,继续往下走,如果获取证书过程中提示无法访问 /.well-known,才去修改 nginx 的配置文件nginx.conf,在 server 块里添加如下代码。

Tomcat 部署Let’s Encrypt让网站使用https

需要增加代码段

然后,重启或 reload nginx,即 sudo service nginx restart

4.5 重新执行 ./certbot-auto,进行自动部署

Tomcat 部署Let’s Encrypt让网站使用https

部署成功

5:证书文件

最终会在 /etc/letsencrypt/live/www.abc.com(自己的域名)下,生成四个 PEM 文件

Tomcat 部署Let’s Encrypt让网站使用https

cert.pem: 域名证书

chain.pem:Let’s Enctrypt chain certificate

fullchain.pem:cert.pem 和 chain.pem 组成

privkey.pem:证书的私钥

执行 sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

生成 generate a strong Diffie-Hellman group,这一步不一定要

6:配置web服务,把tomcat的8080转成80端口,在nginx配置文件下,修改如下信息:

Tomcat 部署Let’s Encrypt让网站使用https

把8080端口转成80端口

7:通过https访问网址

Tomcat 部署Let’s Encrypt让网站使用https

https访问网址

8:由于证书会过期,需要重新生成,通过crontab任务来调用

crontab 要安装两个软件包:

vixie-cron 及 crontabs

直接执行

yum install vixie-cron

yum install crontabs(这句可能不需要,但是你先试试也无关紧要)

执行命令  crontab -e

Tomcat 部署Let’s Encrypt让网站使用https

定时任务

每个月的1号2点30分更新证书,更新证书之后,重启nginx服务器。

转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » Tomcat 部署Let’s Encrypt让网站使用https

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址