Cài đặt SSL trên Tomcat để chuyển hướng từ HTTP sang HTTPS
3 phút đọc15/07/2025
Chris PhamTechnical Writer
Reading Time: 3 minutesSecured Socket Layer (SSL) là giao thức mã hóa nhằm cung cấp khả năng bảo mật thông tin được gửi trên Internet. Giao thức này sử dụng cặp khóa Private và Public để mã hóa các thông điệp trước khi gửi đi. Để cấu hình SSL trên Tomcat, chúng ta cần một chứng chỉ (certificate) số.

Ta có thể tự tạo chứng chỉ này bằng công cụ keytool của Java để dùng cho môi trường development (phát triển). Đối với môi trường production, chúng ta nên lấy chứng chỉ từ các nhà cung cấp uy tín như Verisign, Entrust, hay Lets’ Encrypt.
Tạo chứng chỉ SSL trên Tomat
Hãy dùng lệnh keytool dưới đây để tự tạo chứng chỉ số cho riêng mình.
$ keytool -genkey -alias tomcat -keyalg RSA -keystore mycertificate.cert
Enter keystore password:
Re-enter new password:
What is your first and last name?
[Unknown]: Pankaj Kumar
What is the name of your organizational unit?
[Unknown]: Dev
What is the name of your organization?
[Unknown]: JournalDev
What is the name of your City or Locality?
[Unknown]: Bangalore
What is the name of your State or Province?
[Unknown]: Karnataka
What is the two-letter country code for this unit?
[Unknown]: IN
Is CN=Pankaj Kumar, OU=Dev, O=JournalDev, L=Bangalore, ST=Karnataka, C=IN correct?
[no]: Yes
Enter key password for
(RETURN if same as keystore password):
Re-enter new password:
$ ls
mycertificate.cert
Trong ví dụ này, ta sử dụng mật khẩu changeit cho cả Keystore và key, nhưng bạn có thể tùy ý chọn mật khẩu khác. Bước tiếp theo là kích hoạt cổng giao tiếp HTTPS trên Tomcat và cấu hình để máy chủ sử dụng chứng chỉ số này nhằm hỗ trợ SSL.
Cấu hình HTTPS trên Tomcat
Để kích hoạt SSL, hãy mở file ~Tomcat_Installation/conf/server.xml và bỏ dấu comment ở dòng sau:
Để tránh đặt file chứng chỉ sai vị trí, ta đã đặt nó vào thư mục conf của Tomcat. Bây giờ, hãy khởi động lại Tomcat và thử truy cập một ứng dụng web bất kỳ thông qua giao thức https với cổng 8443.

Chuyển hướng từ HTTP sang HTTPS trên Tomcat
Như vậy, ứng dụng web đã có thể được truy cập trên cả hai cổng HTTP và HTTPS. Tiếp theo, ta có thể cấu hình Tomcat để chuyển hướng (redirect) tất cả các request đến cổng HTTP sang HTTPS bằng một vài thiết lập sau.
Trong cấu hình HTTP Connector ở ~TomcatInstallation/conf/server.xml, hãy đặt cổng chuyển hướng (redirectPort) thành cổng của HTTPS connector. Cấu hình sẽ trông tương tự như sau:
In ~TomcatInstallation/conf/web.xml
Add below configuration but make sure to add it after all the servlet-mapping tags.
Entire Application
/*
CONFIDENTIAL
Bây giờ, hãy khởi động lại Tomcat. Tất cả các request HTTP sẽ tự động được chuyển hướng sang HTTPS. Ví dụ, https://localhost:8080/axis2 sẽ được chuyển hướng thành https://localhost:8443/axis2.
Lưu ý: Nếu bạn không muốn phải nhập số cổng trong URL, hãy sử dụng cổng 80 cho HTTP và 443 cho HTTPS. Khi đó, người dùng có thể truy cập ứng dụng mà không cần chỉ định cổng với request sẽ được tự động chuyển đến cổng 443.
Về tác giả

Chris PhamTechnical Writer
I have over 5 years of experience writing technical documentation for tech products, making them accessible and user-friendly. My focus is always on providing clear and precise information.
@#@
Tôi đã có hơn 5 năm kinh nghiệm viết tài liệu kỹ thuật cho các sản phẩm công nghệ, giúp người dùng dễ dàng tiếp cận và sử dụng. Tôi luôn tập trung vào việc cung cấp thông tin chính xác và dễ hiểu.
Cập nhật thông tin mới nhấtNhận các thông tin mới nhất về mối đe dọa, báo cáo an ninh mạng từ CyStack về hòm thư điện tử của bạn
{"success":true,"head":"<title>Cài đặt SSL trên Tomcat để chuyển hướng từ HTTP sang HTTPS - CyStack Tutorial</title>\n<meta name=\"description\" content=\"Tham khảo bài viết này để cài đặt SSL trên Tomcat và chuyển hướng từ HTTP sang HTTPS để bảo mật đường truyền thông tin giữa người dùng và máy chủ một cách hiệu quả.\"/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-video-preview:-1, max-image-preview:large\"/>\n<link rel=\"canonical\" href=\"https://blog.cystack.org/tutorial/2025/07/15/cai-dat-ssl-tren-tomcat/\" />\n<meta property=\"og:locale\" content=\"en_US\" />\n<meta property=\"og:type\" content=\"article\" />\n<meta property=\"og:title\" content=\"Cài đặt SSL trên Tomcat để chuyển hướng từ HTTP sang HTTPS - CyStack Tutorial\" />\n<meta property=\"og:description\" content=\"Tham khảo bài viết này để cài đặt SSL trên Tomcat và chuyển hướng từ HTTP sang HTTPS để bảo mật đường truyền thông tin giữa người dùng và máy chủ một cách hiệu quả.\" />\n<meta property=\"og:url\" content=\"https://blog.cystack.org/tutorial/2025/07/15/cai-dat-ssl-tren-tomcat/\" />\n<meta property=\"og:site_name\" content=\"CyStack Tutorial\" />\n<meta property=\"article:tag\" content=\"vi\" />\n<meta property=\"article:section\" content=\"Java\" />\n<meta property=\"og:image\" content=\"https://s2.cystack.net/tutorial/15102121/cai-dat-ssl-tren-tomcat.jpg\" />\n<meta property=\"og:image:secure_url\" content=\"https://s2.cystack.net/tutorial/15102121/cai-dat-ssl-tren-tomcat.jpg\" />\n<meta property=\"og:image:width\" content=\"1200\" />\n<meta property=\"og:image:height\" content=\"630\" />\n<meta property=\"og:image:alt\" content=\"Cài đặt SSL trên Tomcat\" />\n<meta property=\"og:image:type\" content=\"image/jpeg\" />\n<meta property=\"article:published_time\" content=\"2025-07-15T10:22:00+07:00\" />\n<meta name=\"twitter:card\" content=\"summary_large_image\" />\n<meta name=\"twitter:title\" content=\"Cài đặt SSL trên Tomcat để chuyển hướng từ HTTP sang HTTPS - CyStack Tutorial\" />\n<meta name=\"twitter:description\" content=\"Tham khảo bài viết này để cài đặt SSL trên Tomcat và chuyển hướng từ HTTP sang HTTPS để bảo mật đường truyền thông tin giữa người dùng và máy chủ một cách hiệu quả.\" />\n<meta name=\"twitter:image\" content=\"https://s2.cystack.net/tutorial/15102121/cai-dat-ssl-tren-tomcat.jpg\" />\n<meta name=\"twitter:label1\" content=\"Written by\" />\n<meta name=\"twitter:data1\" content=\"Chris Pham\" />\n<meta name=\"twitter:label2\" content=\"Time to read\" />\n<meta name=\"twitter:data2\" content=\"3 minutes\" />\n<script type=\"application/ld+json\" class=\"rank-math-schema\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https://blog.cystack.org/tutorial/#person\",\"name\":\"CyStack Tutorial\"},{\"@type\":\"WebSite\",\"@id\":\"https://blog.cystack.org/tutorial/#website\",\"url\":\"https://blog.cystack.org/tutorial\",\"name\":\"CyStack Tutorial\",\"publisher\":{\"@id\":\"https://blog.cystack.org/tutorial/#person\"},\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https://s2.cystack.net/tutorial/15102121/cai-dat-ssl-tren-tomcat.jpg\",\"url\":\"https://s2.cystack.net/tutorial/15102121/cai-dat-ssl-tren-tomcat.jpg\",\"width\":\"1200\",\"height\":\"630\",\"caption\":\"C\\u00e0i \\u0111\\u1eb7t SSL tr\\u00ean Tomcat\",\"inLanguage\":\"en-US\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://blog.cystack.org/tutorial/2025/07/15/cai-dat-ssl-tren-tomcat/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":\"1\",\"item\":{\"@id\":\"https://blog.cystack.org/tutorial\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"position\":\"2\",\"item\":{\"@id\":\"https://blog.cystack.org/tutorial/category/java/\",\"name\":\"Java\"}},{\"@type\":\"ListItem\",\"position\":\"3\",\"item\":{\"@id\":\"https://blog.cystack.org/tutorial/2025/07/15/cai-dat-ssl-tren-tomcat/\",\"name\":\"C\\u00e0i \\u0111\\u1eb7t SSL tr\\u00ean Tomcat \\u0111\\u1ec3 chuy\\u1ec3n h\\u01b0\\u1edbng t\\u1eeb HTTP sang HTTPS\"}}]},{\"@type\":\"WebPage\",\"@id\":\"https://blog.cystack.org/tutorial/2025/07/15/cai-dat-ssl-tren-tomcat/#webpage\",\"url\":\"https://blog.cystack.org/tutorial/2025/07/15/cai-dat-ssl-tren-tomcat/\",\"name\":\"C\\u00e0i \\u0111\\u1eb7t SSL tr\\u00ean Tomcat \\u0111\\u1ec3 chuy\\u1ec3n h\\u01b0\\u1edbng t\\u1eeb HTTP sang HTTPS - CyStack Tutorial\",\"datePublished\":\"2025-07-15T10:22:00+07:00\",\"dateModified\":\"2025-07-15T10:22:00+07:00\",\"isPartOf\":{\"@id\":\"https://blog.cystack.org/tutorial/#website\"},\"primaryImageOfPage\":{\"@id\":\"https://s2.cystack.net/tutorial/15102121/cai-dat-ssl-tren-tomcat.jpg\"},\"inLanguage\":\"en-US\",\"breadcrumb\":{\"@id\":\"https://blog.cystack.org/tutorial/2025/07/15/cai-dat-ssl-tren-tomcat/#breadcrumb\"}},{\"@type\":\"Person\",\"@id\":\"https://blog.cystack.org/tutorial/author/codeweaver/\",\"name\":\"Chris Pham\",\"url\":\"https://blog.cystack.org/tutorial/author/codeweaver/\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https://secure.gravatar.com/avatar/7a3584c941fa360ac061b2a8f15684ced7b92daa1f09481be135a684d989e9b9?s=96&d=mm&r=g\",\"url\":\"https://secure.gravatar.com/avatar/7a3584c941fa360ac061b2a8f15684ced7b92daa1f09481be135a684d989e9b9?s=96&d=mm&r=g\",\"caption\":\"Chris Pham\",\"inLanguage\":\"en-US\"}},{\"@type\":\"BlogPosting\",\"headline\":\"C\\u00e0i \\u0111\\u1eb7t SSL tr\\u00ean Tomcat \\u0111\\u1ec3 chuy\\u1ec3n h\\u01b0\\u1edbng t\\u1eeb HTTP sang HTTPS - CyStack Tutorial\",\"keywords\":\"SSL tr\\u00ean Tomcat,C\\u00e0i \\u0111\\u1eb7t SSL tr\\u00ean Tomcat,WebServer Tomcat\",\"datePublished\":\"2025-07-15T10:22:00+07:00\",\"dateModified\":\"2025-07-15T10:22:00+07:00\",\"articleSection\":\"Java\",\"author\":{\"@id\":\"https://blog.cystack.org/tutorial/author/codeweaver/\",\"name\":\"Chris Pham\"},\"publisher\":{\"@id\":\"https://blog.cystack.org/tutorial/#person\"},\"description\":\"Tham kh\\u1ea3o b\\u00e0i vi\\u1ebft n\\u00e0y \\u0111\\u1ec3 c\\u00e0i \\u0111\\u1eb7t SSL tr\\u00ean Tomcat v\\u00e0 chuy\\u1ec3n h\\u01b0\\u1edbng t\\u1eeb HTTP sang HTTPS \\u0111\\u1ec3 b\\u1ea3o m\\u1eadt \\u0111\\u01b0\\u1eddng truy\\u1ec1n th\\u00f4ng tin gi\\u1eefa ng\\u01b0\\u1eddi d\\u00f9ng v\\u00e0 m\\u00e1y ch\\u1ee7 m\\u1ed9t c\\u00e1ch hi\\u1ec7u qu\\u1ea3.\",\"name\":\"C\\u00e0i \\u0111\\u1eb7t SSL tr\\u00ean Tomcat \\u0111\\u1ec3 chuy\\u1ec3n h\\u01b0\\u1edbng t\\u1eeb HTTP sang HTTPS - CyStack Tutorial\",\"@id\":\"https://blog.cystack.org/tutorial/2025/07/15/cai-dat-ssl-tren-tomcat/#richSnippet\",\"isPartOf\":{\"@id\":\"https://blog.cystack.org/tutorial/2025/07/15/cai-dat-ssl-tren-tomcat/#webpage\"},\"image\":{\"@id\":\"https://s2.cystack.net/tutorial/15102121/cai-dat-ssl-tren-tomcat.jpg\"},\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https://blog.cystack.org/tutorial/2025/07/15/cai-dat-ssl-tren-tomcat/#webpage\"}}]}</script>\n"}