使用Letsencrypt SSL证书在CentOS 7上安装Apache Tomcat 7
时间:2020-02-23 14:31:28 来源:igfitidea点击:
Apache Tomcat是用于服务Java应用程序的Web服务器和servlet容器。 Tomcat是由Apache Software Foundation发布的Java Servlet和JavaServer Pages技术的开源实现。
这是从部署ODKAggregate tomcat应用程序和Letsencrypt SSL证书中学到的经验的文档。
该设置基于CentOS 7服务器和Tomcat 7.0.69
Tomcat安装
sudo yum -y install epel-release sudo yum -y install tomcat tomcat-docs-webapp tomcat-javadoc tomcat-webapps tomcat-admin-webapps
配置JAVA路径
sudo yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel sudo update-alternatives --config java sudo update-alternatives --config javac $ls -l /usr/lib/jvm sudo tee -a /etc/bashrc<<EOF export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk export PATH=$JAVA_HOME/bin:$PATH EOF $source /etc/bashrc $echo $JAVA_HOME $java -version
Tomcat JAVA选项文件为/etc/tomcat/tomcat.conf,示例配置:
JAVA_OPTS="-Xms1024m -Xmx7328m -XX:MaxPermSize=5898m -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled"
如果我们想添加管理员用户来使用GUI管理Tomcat,可以在文件/usr/share/tomcat/conf/tomcat-users.xml下的以下部分中完成:
<tomcat-users> ... </tomcat-users>
例:
<tomcat-users>
<user username="admin" password="password" roles="manager-gui,admin-gui"
</tomcat-users>
安装Letsencrypt
wget https://dl.eff.org/certbot-auto -P /usr/local/bin chmod a+x /usr/local/bin/certbot-auto
申请Letsencrypt SSL域名证书
firewall-cmd --add-service https --permanent firewall-cmd --reload certbot-auto certonly -d odk2.domain.com
SSL内容将位于/etc/letsencrypt/live/odk2.domain.com/下
创建一个包含完整链和私钥的PKCS12
openssl pkcs12 -export -out /tmp/odk2.domain.com_fullchain_and_key.p12 \
-in /etc/letsencrypt/live/odk2.domain.com/fullchain.pem \
-inkey /etc/letsencrypt/live/odk2.domain.com/privkey.pem \
-name tomcat
将该PKCS12转换为JKS
keytool -importkeystore \
-deststorepass ughubieVahfaej5 -destkeypass ughubieVahfaej5 -destkeystore odk2.domain.com.jks \
-srckeystore odk2.domain.com_fullchain_and_key.p12 -srcstoretype PKCS12 -srcstorepass ughubieVahfaej5 \
-alias tomcat
用密码替换ughubieVahfaej5
配置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
<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
管理应用
http://server_IP_address:8080/manager/html

