Apache Tomcat SSL Configuration

بهمن 5, 1398لینوکس

ابتدا apache-tomcat-8.5.13 و jdk1.8.0_192 را در opt سرور کپی کرده و از حالت فشرده خارج می کنیم و سپس تنظیمات جاوا را اعمال می کنیم.

برای این منظور دستورات زیر را بر روی سرور اجرا نمایید

cd /opt/
ls -la
unzip apache-tomcat-8.5.13.zip
tar -xvf jdk-8u192-linux-x64.tar.gz

install java:

java -version
alternatives --install /usr/bin/java java /opt/jdk1.8.0_192/bin/java 2
   alternatives --config java
   alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_192/bin/javac 2
   alternatives --install /usr/bin/jar jar /opt/jdk1.8.0_192/bin/jar 2
   alternatives --set jar /opt/jdk1.8.0_192/bin/jar
   alternatives --set javac /opt/jdk1.8.0_192/bin/javac


echo "export JAVA_HOME=/opt/jdk1.8.0_192/" >> /etc/bashrc
echo "export JRE_HOME=/opt/jdk1.8.0_192/jre" >> /etc/bashrc
echo "export PATH=$PATH:/opt/jdk1.8.0_192/bin:/opt/jdk1.8.0_192/jre/bin" >> /etc/bashrc

java -version

source /etc/bashrc
echo $JAVA_HOME

سپس بوسیله دستورات زیر keystore را تولید می نماییم

cd $JAVA_HOME/bin
keytool -genkey -alias svr1.linuxkade.ir/ -keyalg RSA -keystore /opt/keystore

 

حال باید تامکت را برای استفاده از keystore تولید شده تنظیم نماییم

cd /opt/apache-tomcat-8.5.13/conf/
cp server.xml server.xml.bak
vim server.xml
    
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true" secure="true" scheme="https" clientAuth="false"
                keystoreFile="/opt/keystore" keystorePass="123456" >
   <!--     <SSLHostConfig>
        <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
             type="RSA" />
        </SSLHostConfig-->
    </Connector>

توجه : قبل از اعمال تغییرات بر روی فایل server.xml یک بک آپ از آن تهیه نمایید.

حال اگر تامکت را اجرا نمایید هم بر روی پورت 8080 که اتصال عادی و غیر https است و هم بر روی پورت 8443 که پورت اتصال https می باشد بالا می آید.

حال دو حالت پیش می آید :

1- شما می خواهید تامکت وقتی در حالت ناامن اجرا می شود ریدایرکت شود بر روی  https ، که در این حالت باید خطوطی که در کادر پایین می بینید  را به انتهای فایل web.xml اضافه نمایید.

vim /opt/apache-tomcat-8.5.13/conf/web.xml


...
...
...

<security-constraint>
    <web-resource-collection>
        <web-resource-name>securedapp</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>


</web-app>

2- شما می خواهید تامکت فقط در حالت https و امن اجرا شود که در اینصورت فقط کافی است بخش زیر در فایل server.xml را کامنت نمایید

<!--   
 <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
-->

 

ساخت سرویس برای تامکت: (این بخش اختیاری است و فقط جهت تسهیل استفاده از تامکت  قرار داده شده است)

در مسیر زیر فایل tomcat.service را ایجاد نمایید

vim /etc/systemd/system/tomcat.service

و داخل فایل فوق دستورات زیر را قرار دهید

# Systemd unit file for tomcat
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target

[Service]
Type=forking

#Environment=JAVA_HOME=/usr/lib/jvm/jre
#Environment=JAVA_HOME=/opt/jdk1.6.0_45
Environment=CATALINA_PID=/opt/apache-tomcat-8.5.13/temp/tomcat.pid
#Environment=CATALINA_HOME=/opt/Tomcat
#Environment=CATALINA_BASE=/opt/Tomcat
#Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
#Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.net.preferIPv4Stack=true  -Djava.security.egd=file:/dev/./urandom' -Dorg.apache.catalina.connector.RECYCLE_FACADES=true

#ExecStart=/usr/bin/authbind --deep /opt/tomcat8/bin/startup.sh
ExecStart=/opt/apache-tomcat-8.5.13/bin/startup.sh
#ExecStart=/opt/Tomcat/bin/catalina.sh start -security
ExecStop=/opt/apache-tomcat-8.5.13/bin/shutdown.sh

#User=tomcat
#Group=tomcat
#UMask=0007
#RestartSec=10
#Restart=always

[Install]
WantedBy=multi-user.target

سپس برای اینکه سیستم عامل سرویس تامکتی که ایجاد نموده اید را بشناسد دستورات زیر را اجرا نمایید و سرویس تامکت را start نمایید.

systemctl daemon-reload
pkill -9 java
systemctl start tomcat


بوسیله ایجاد سرویس برای تامکت دیگر نیاز نیست برای اجرا شدن تامکت به مسیر زیر رفته و فایل catalina.sh را دستی اجرا نمایید و همچنین این قابلیت نیز وجود دارد که در زمان بوت سیستم عامل سرویس تامکت خودکار اجرا شود.

 

/opt/apache-tomcat-8.5.13/bin/catalina.sh run

لینک دانلود فایل تامکت ssl شده به همراه keystore

 


پست های مرتبط


یک نظر ارسال کنید

ایمیل شما نزد ما امن می ماند