相关文章:
在CentOS 1804 中设置 Apache Tomcat 9.0.12 开机自启
准备环境:
- CentOS(版本没有要求,笔者使用CentOS 1804)。
- Tomcat 9(8.5或9,7/8略有问题,以后再讨论,笔者使用 tomcat 9),相关配置见本文开始或结束的相关文章。
- 拥有至少2个域名(两个子域名就可以)。
- 阿里云SSL+腾讯云SSL(为了有代表性,所以举了两个不同的SSL)。
申请地址:
阿里云(一个阿云帐户最多签发20张免费证书):https://www.aliyun.com/product/cas
腾讯云(同一主域最多只能申请20张亚洲诚信品牌免费型DV版SSL证书):https://cloud.tencent.com/product/ssl
- 本人使用的SSL:
- 阿里云SSL:https.wimcn.cn
- 腾讯云SSL:a.wimcn.cn
- 首先将两个域名解压到tomcat9的根路径下,相关位置如下:
[root@CSDNBolg tomcat9]# ls a.wimcn.cn BUILDING.txt CONTRIBUTING.md lib logs README.md RUNNING.txt webapps bin conf https.wimcn.cn LICENSE NOTICE RELEASE-NOTES temp work
- 首先配置一个腾讯云SSL(较简单)(a.wimcn.cn):
修改tomcat根目录下的conf文件夹下的server.xml文件:将 <Connector port="8080" protocol="HTTP/ connectionTimeout=" redirectPort="8443" /> 修改为: <Connector port="80" protocol="HTTP/ connectionTimeout=" redirectPort="443" />
释放下面的注释 <!-- <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true"> <SSLHostConfig> <Certificate certificateKeystoreFile="conf/localhost-rsa.jks" type="RSA" /> </SSLHostConfig> </Connector> --> 修改为: <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" defaultSSLHostConfigName="a.wimcn.cn"> <SSLHostConfig hostName="a.wimcn.cn"> <Certificate certificateKeystoreFile="a.wimcn.cn/Tomcat/a.wimcn.cn.jks" type="RSA" certificateKeystorePassword="密码" /> </SSLHostConfig> </Connector> 说明: hostName="",为该连接器对应的域名,必填。 defaultSSLHostConfigName="",这是默认域名,无论是单域名SSL,还是多域名SSL都要设置,必填。 certificateKeystoreFile="",是腾讯云SSL连接器,笔者使用的是相对位置,相对于tomcat根目录的。必填。 certificateKeystorePassword="",是密码,如果申请腾讯云SSL证书时有填写私钥密码,密钥库密码即私钥密码,否则填写密钥库密码文件中的密码,和腾讯云SSL连接器在相同文件夹下,必填。
将 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> 修改为: <Connector port="8009" protocol="AJP/1.3" redirectPort="443" />
如果有需要,请阅读腾讯云SSL证书安装指引:https://cloud.tencent.com/document/product/400/4143
- 开放80/443端口:
查看防火墙是否开启:
下面说明防火墙开启了:
下面说明防火墙没有开启:[root@CSDNBolg conf]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2018-09-21 03:21:59 CST; 56min ago Docs: man:firewalld(1) Main PID: 767 (firewalld) CGroup: /system.slice/firewalld.service └─767 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid Sep 21 03:21:59 CSDNBolg systemd[1]: Starting firewalld - dynamic firewall daemon... Sep 21 03:21:59 CSDNBolg systemd[1]: Started firewalld - dynamic firewall daemon.
开启防火墙:[root@CSDNBolg conf]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: inactive (dead) since Fri 2018-09-21 04:19:56 CST; 1s ago Docs: man:firewalld(1) Process: 767 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS) Main PID: 767 (code=exited, status=0/SUCCESS) Sep 21 03:21:59 CSDNBolg systemd[1]: Starting firewalld - dynamic firewall daemon... Sep 21 03:21:59 CSDNBolg systemd[1]: Started firewalld - dynamic firewall daemon. Sep 21 04:19:55 CSDNBolg systemd[1]: Stopping firewalld - dynamic firewall daemon... Sep 21 04:19:56 CSDNBolg systemd[1]: Stopped firewalld - dynamic firewall daemon.
查看已开放的端口:[root@CSDNBolg conf]# systemctl start firewalld
开通80/443端口:[root@CSDNBolg conf]# firewall-cmd --list-ports 8080/tcp
重启防火墙:[root@CSDNBolg conf]# firewall-cmd --zone=public --add-port=80/tcp --permanent success [root@CSDNBolg conf]# firewall-cmd --zone=public --add-port=443/tcp --permanent success
查看已开放的端口:[root@CSDNBolg conf]# firewall-cmd --reload success
重启tomcat(设置在CentOS 1804 中设置 Apache Tomcat 9.0.12 开机自启后可用):[root@CSDNBolg conf]# firewall-cmd --list-ports 8080/tcp 80/tcp 443/tcp
由于本人测试环境为虚拟机,地址为192.168.113.141,修改本机host为:[root@CSDNBolg conf]# systemctl restart tomcat9.service
访问https://a.wimcn.cn
至此,配置一个腾讯云SSL证书的域名就完成了。 - 配置一个阿里云SSL(https.wimcn.cn)
进入阿里云SSL文件夹下(已重命名):
证书格式转换,此处要设置PFX证书密码,请牢记(输入密码时不显示):[root@CSDNBolg https.wimcn.cn]# ls https.wimcn.cn.key https.wimcn.cn.pem https.wimcn.cn.pfx https.wimcn.cn.txt
PFX证书安装:[root@CSDNBolg https.wimcn.cn]# openssl pkcs12 -export -out https.wimcn.cn.pfx -inkey https.wimcn.cn.key -in https.wimcn.cn.pem Enter Export Password: Verifying - Enter Export Password:
如果有需要,请在后买阿里云SSL(免费)证书后,在SSL证书控制台(https://www.aliyun.com/product/cas)查看看相关信息。在 <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" defaultSSLHostConfigName="a.wimcn.cn"/Connector> 中新增: <SSLHostConfig hostName="https.wimcn.cn"> <Certificate certificateKeystoreFile="https.wimcn.cn/https.wimcn.cn.pfx" type="RSA" certificateKeystoreType="PKCS12" certificateKeystorePassword="密码" /> </SSLHostConfig> 说明: hostName="",为该连接器对应的域名,必填。 certificateKeystoreFile="",是阿里云SSL连接器,笔者使用的是相对位置,相对于tomcat根目录的。必填。 certificateKeystorePassword="",是密码,上一步证书格式转换时的密码,必填。 certificateKeystoreType="PKCS12",固定,不可改,必填。
另外说明,
访问https://https.wimcn.cn
- 补充说明,阿里云SSL配置Tomcat还有JKS证书安装方式,上面讲的是PFX证书安装,两者选其一即可。
进入阿里云SSL文件夹下(已重命名):
证书格式转换,此处要设置PFX证书密码,请牢记(输入密码时不显示):[root@CSDNBolg https.wimcn.cn]# ls https.wimcn.cn.key https.wimcn.cn.pem https.wimcn.cn.pfx https.wimcn.cn.txt
使用java jdk将PFX格式证书转换为JKS格式证书,输入JKS证书密码和PFX证书密码,强烈推荐将JKS密码与PFX证书密码相同,否则可能会导致Tomcat启动失败。:[root@CSDNBolg https.wimcn.cn]# openssl pkcs12 -export -out https.wimcn.cn.pfx -inkey https.wimcn.cn.key -in https.wimcn.cn.pem Enter Export Password: Verifying - Enter Export Password:
JKS证书安装:[root@CSDNBolg https.wimcn.cn]# keytool -importkeystore -srckeystore https.wimcn.cn.pfx -destkeystore https.wimcn.cn.jks -srcstoretype PKCS12 -deststoretype JKS Importing keystore https.wimcn.cn.pfx to https.wimcn.cn.jks... Enter destination keystore password: Re-enter new password: Enter source keystore password: Entry for alias 1 successfully imported. Import command completed: 1 entries successfully imported, 0 entries failed or cancelled Warning: The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format using "keytool -importkeystore -srckeystore https.wimcn.cn.jks -destkeystore https.wimcn.cn.jks -deststoretype pkcs12".
如果有需要,请阅读腾讯云SSL证书安装指引:https://cloud.tencent.com/document/product/400/4143在 <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" defaultSSLHostConfigName="a.wimcn.cn"/Connector> 中新增: <SSLHostConfig hostName="https.wimcn.cn"> <Certificate certificateKeystoreFile="https.wimcn.cn/https.wimcn.cn.jks" type="RSA" certificateKeystorePassword="密码" /> </SSLHostConfig> 说明: hostName="",为该连接器对应的域名,必填。 certificateKeystoreFile="",是阿里云SSL连接器,笔者使用的是相对位置,相对于tomcat根目录的。必填。 certificateKeystorePassword="",是密码,上一步证书格式转换时的密码(PFX证书密码与JKS证书密码相同),必填。
这里就不演示了,效果一样。
相关文章: