Cài đặt ssl trên tomcat9 linux

Cài đặt ssl trên tomcat9 linux

Bài viết này, Mắt Bão sẽ hướng dẫn cài đặt SSL trên Webserver Tomcat.

Bước 1: Xác định các file cài đặt SSL.

Để cài đặt SSL, cần phải có các file cài đặt cần thiết như sau:

  • Private Key, file này được tạo ra lúc bạn tạo thành công file CSR (Certificate Signing Request).
  • File CRT Certificate.
  • CA chain file.

Cài đặt ssl trên tomcat9 linux

Bước 2: Xuất các file định PEM thành file Pfx để cài đặt lên server

Để xuất các file cài đặt SSL dạng PEM thành Pfx, bạn có thể sử dụng lệnh sau:

openssl pkcs12 -export -out {tên file pfx}.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt

Lưu ý: Trên Linux đã có sẵn OpenSSL chỉ cần thực hiện lệnh là xuất thành công, trên Windows chưa có nên sẽ phải cài đặt.

Bước 3: Tìm đến file confing của Tomcat để cấu hình SSL cho Webserver.

Bạn tìm đến đường dẫn sau conf/server.xml đây là file cấu hình cho Webserver tomcat. Tìm đến dòng “Define a SSL/TLS HTTP/1.1 Connector on port …” Sau đó thêm đoạn cấu hình bên dưới sau đó lưu lại và restart Tomcat.

maxThreads=”150″ scheme=”https” secure=”true”
clientAuth=”false” sslProtocol=”TLS”
keystoreFile=”đường dẫn đến file pfx của bạn”
keystoreType=”PKCS12″
keystorePass=”mật khẩu của file pfx” />

Cài đặt ssl trên tomcat9 linux

Sau khi hoàn tất restart Tomcat bạn thử truy cập lại website để kiểm tra. Kết quả như ảnh

Cài đặt ssl trên tomcat9 linux

Chúc các bạn thành công!

Gửi phản hồi về bài viết này

Để cài đặt SSL cho Tomcat trên Linux bạn thực hiện như sau:

Cài đặt ssl trên tomcat9 linux

Nhập SSL được cấp vào keystore:

  1. Giải nén tập tin đính kèm mà bạn nhận được qua email hoặc tải trên website và upload lên server (gồm 2 tập tin tenmien.crt và tenmien.ca-bundle), lưu trong thư mục /usr/local/ssl/keystore (thư mục đã tạo ra trong lúc tạo CSR)
  2. Đăng nhập vào server với quyền root qua ssh. Sau đó di chuyển đến thư mục Java/bin
  3. Chạy lệnh:
    keytool -import -trustcacerts -alias EVIntermediate -keystore /usr/local/ssl/keystore/server.jks -file /usr/local/ssl/keystore/tenmien.ca-bundle
  4. Nhập vào mật khẩu là “changeit” khi được hỏi.
  5. Chạy lệnh:
    keytool -import -trustcacerts -alias tomcat -keystore /usr/local/ssl/keystore/server.jks -file /usr/local/ssl/keystore/tenmien.crt
  6. Nhập vào mật khẩu là “changeit” khi được hỏi.
  7. Chứng thư số đã được cài đặt thành công vào Keystore. Bạn có thể chạy lệnh sau để kiểm tra thông tin keystore:
    keytool -list -keystore /usr/local/ssl/keystore/server.jks -v

Cấu hình SSL cho Tomcat

  1. Chuyển đến thư mục Tomcat. Tìm tập tin server.xml mà Tomcat đang sử dụng và mở ra để chỉnh sửa.
  2. Cập nhật lại đường dẫn trong đoạn sau đây:
    clientAuth="false" sslProtocol="TLSv1" keyAlias="tomcat" keystoreFile="/usr/local/ssl/keystore/server.jks"
    keystorePass="your_keystore_password" />
  3. Lưu ý sửa port 8443 thành port 443
  4. Nếu bạn muốn hỗ trợ TLS 1.1 và TLS 1.2 (nếu server của bạn là Tomcat >=7), bạn có thể thay đổi phần sslProtocols phía trên thành: sslProtocols="TLSv1,TLSv1.1,TLSv1.2"
  5. Mở port 443 trên Firewall (Nếu bạn dùng software firewall như iptables chẳng hạn thì có thể tìm thấy file config tại: /etc/sysconfig/iptables)
  6. Khởi động lại Tomcat.
Mẹo: Dùng PFX

Cấu hình dùng PFX trong Tomcat

Tải phiên bản PFX trên máy chủ của chúng tôi hoặc tự chuyển đổi sang PFX

Cập nhật tham số sau ở tập tin server.xml

Cài đặt ssl trên tomcat9 linux

Mục lục

  • Mở đầu
  • Cài đặt và cấu hình Tomcat service
    • Bước 1 – Cài đặt Java
    • Bước 2 – Tạo Tomcat System User
    • Bước 3 – Download Tomcat
    • Bước 4 – Cập nhật quyền thực thi
    • Bước 5 – Tạo file Systemd Unit cho Tomcat
    • Bước 6 – Cấu hình Firewall
  • Cấu hình giao diện web quản trị Tomcat 
    • 1. Cấu hình
    • 2. Kiểm tra cấu hình
  • Kết luận
  • Xem thêm:

Mở đầu

Apache Tomcat là một web server mã nguồn mở được phát triển bởi tập đoàn Apache. Tomcat không phải là một web server đa dụng như Apache hoặc Nginx, mục đích chính của nó là cung cấp một môi trường dùng để thực thi các ứng dụng thuần Java, Java Servlet và JavaServer Pages.

Bài viết này sẽ hướng dẫn bạn những bước cài đặt và cấu hình cơ bản Tomcat 9 trên nền tảng bản phân phối Linux mới AlmaLinux 8.

Cài đặt và cấu hình Tomcat service

Bước 1 – Cài đặt Java

Tomcat 9 yêu cầu Java SE 8 (hoặc cao hơn) phải được cài đặt trên CentOS. Bạn có thể cài đặt Java từ kho lưu trữ gói mặc định bằng lệnh dnf  như sau:

# dnf install java-1.8.0-openjdk-devel

Sau khi quá trình cài đặt hoàn tất, bạn có thể kiểm tra lại phiên bản Java bằng lệnh bên dưới:

# java -version

Cài đặt ssl trên tomcat9 linux

Bước 2 – Tạo Tomcat System User

Vì lý do bảo mật, Tomcat nên được thực thi bởi một user được cấp quyền riêng (không phải user root). Chúng ta sẽ tạo một user và group để thực thi Tomcat.

Đầu tiên, bạn tạo group bằng lệnh

# groupadd tomcat

Sau đó, tạo một user tomcat (là thành viên của group tomcat) với thư mục home /opt/tomcat (thư mục cài đặt Tomcat ở bước sau) và tắt quyền truy cập vào server:

# useradd -M -s /bin/nologin -g tomcat -d /opt/tomcat tomcat

Bước 3 – Download Tomcat

Bạn có thể sử dụng lệnh wget như sau để tải về phiên bản tomcat 9 mới nhất.

# wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.52/bin/apache-tomcat-9.0.52.tar.gz

Tiếp theo, bạn tiến hành giải nén file .tar.gz vào thư mục cài đăt Tomcat (/opt/tomcat) bằng lệnh sau:

# tar -xzvf apache-tomcat-9.0.52.tar.gz -C /opt/tomcat --strip-components=1

Bước 4 – Cập nhật quyền thực thi

Để user tomcat có thể truy cập vào thư mục cài đặt Tomcat, bạn lần lượt thiết lập quyền như sau:

– Gán quyền sỡ hữu thư mục cài đặt Tomcat cho group tomcat

# cd /opt/tomcat 
# chgrp -R tomcat /opt/tomcat

– Kế tiếp, thiết lập quyền đọc và thực thi thư mục conf (và tất cả nội dung con bên trong) cho group tomcat.

# chmod -R g+r conf
# chmod g+x conf

Sau cùng, bạn gán user tomcat sở hữu các thư mục webapps, work, temp và logs như sau

# chown -R tomcat webapps/ work/ temp/ logs/

Bước 5 – Tạo file Systemd Unit cho Tomcat

Để Tomcat hoạt động như một dịch vụ trên CentOS 7, bạn cần tạo mới một file Tomcat Systemd unit.

Tạo và mở file unit bằng lệnh sau:

vi /etc/systemd/system/tomcat.service

Thêm nội dung bên dưới vào file.

# 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=CATALINA_PID=/opt/tomcat/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.security.egd=file:/dev/./urandom'

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/bin/kill -15 $MAINPID

User=root
Group=root
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

Tiếp theo, bạn thực thi lệnh sau để khởi động lại Systemd để nhận file Tomat unit

# systemctl daemon-reload

Sau cùng, bạn lần lượt thực thi những lệnh sau để khởi động, bật chế độ chạy nền và kiểm tra trạng thái của Tomcat.

# systemctl start tomcat
# systemctl enable tomcat
# systemctl status tomcat

Cài đặt ssl trên tomcat9 linux

Bước 6 – Cấu hình Firewall

Nếu server của bạn có sử dụng tường lửa (firewalld hoặc iptables), bạn cần thiết lập mở port 8080 để có thể truy cập giao diện Tomcat từ bên ngoài.

# firewall-cmd --add-port=8080/tcp --permanent
# firewall-cmd --reload

Ngay sau khi mở port 8080, bạn có thể mở trình duyệt web, truy cập đường dẫn: http://ip-server:8080 để kiểm tra giao diện mặc định Tomat.

Cài đặt ssl trên tomcat9 linux

Cấu hình giao diện web quản trị Tomcat 

1. Cấu hình

Sau khi hoàn tât các bước cài đặt và cấu hình cơ bản, bạn đã có thể truy cập trang Tomcat mặc định như trên. Tuy nhiên, vì lý do bảo mật nên bạn cần tạo thêm user để có thể truy cập trang quản trị Tomcat manager.

User Tomcat và các quyền sẽ được định nghĩa trong file tomcat-users.xml. Bạn mở file /opt/tomcat/latest/conf/tomcat-users.xml, tìm và thêm nội dung bên dưới vào bên trong thẻ

 rolename="admin-gui"/>
 rolename="manager-gui"/>
 username="admin" password="admin_password" roles="admin-gui,manager-gui"/>

Cài đặt ssl trên tomcat9 linux

Lưu ý:

  • rolename=”admin-gui” và “manager-gui” lần lượt các quyền truy cập vào trang quản trị Tomcat và trang quản lý webapps.
  • Thay đổi các giá trị username và password tương ứng với hệ thống của bạn.

Theo mặc định, giao diện quản trị Tomcat chỉ cho phép truy cập từ localhost, để có thể truy cập từ một remote IP hoặc bất kỳ đâu, bạn thực hiện những điều chỉnh như sau:

Lần lượt mở các file /opt/tomcat/webapps/manager/META-INF/context.xml và /opt/tomcat/webapps/host-manager/META-INF/context.xml, khóa hoặc xóa bỏ nội dung bên dưới trong thẻ

Cài đặt ssl trên tomcat9 linux

Cài đặt ssl trên tomcat9 linux

Khởi động lại Tomcat để những điều chỉnh có tác dụng bằng lệnh sau:

# systemctl restart tomcat

2. Kiểm tra cấu hình

Sau khi hoàn tất các thiết lập, bạn truy cập lại giao diện quản trị Tomcat theo đường dẫn: http://:8080

Bạn lần lượt truy cập vào Server StatusManage App và Host Manager, sau khi hoàn tất bước xác thực Tomcat User sẽ được kết quả tương tự như sau:

  • Server Status

Cài đặt ssl trên tomcat9 linux

  • Manage App

Cài đặt ssl trên tomcat9 linux

  • Host-Manager

Cài đặt ssl trên tomcat9 linux

Kết luận

Như vậy là mình đã hoàn thành bài viết hướng dẫn những bước cài đặt và cấu hình Tomcat 9 cơ bản nhất trên AlmaLinux 8.4. Nếu có bất kỳ thắc mắc hoặc góp ý về nội dung bài viết, các bạn có thể để lại phản hồi ngay bên dưới.

Bạn có thể truy cập trang Tài liệu Tomcat 9 của Apache để tìm hiểu thêm những thiết lập nâng cao khác.

Trong bài viết sau, mình sẽ tiếp tục chia sẻ hướng dẫn quản trị và  deploy ứng dụng Java lêm Tomcat server. Các bạn nhớ theo dõi nhé!