使用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