Tin tức và phân tích của tất cả các thiết bị di động

Làm cách nào để triển khai SSL trong Apache Tomcat?

Hướng dẫn từng bước để thiết lập chứng chỉ SSL/TLS trên Tomcat.

Một trong những nhiệm vụ bảo mật chính của Tomcat là thiết lập chứng chỉ SSL để làm cho ứng dụng web của bạn có thể truy cập được qua HTTPS.

Có nhiều cách để đạt được điều này.

  • Bạn có thể chấm dứt SSL trong bộ cân bằng tải
  • Triển khai SSL ở cấp CDN
  • Sử dụng các máy chủ web như Apache, Nginx, v.v. và triển khai SSL ở đó

Tuy nhiên, nếu bạn không sử dụng bất kỳ thứ nào ở trên hoặc đang sử dụng nó làm giao diện người dùng hoặc cần triển khai SSL trực tiếp trong Tomcat, những điều sau đây sẽ hữu ích.

Trong bài viết này, chúng tôi sẽ làm như dưới đây.

  • Tạo CSR (Yêu cầu ký chứng chỉ)
  • Nhập chứng chỉ vào kho khóa
  • Kích hoạt SSL trong Tomcat
  • Định cấu hình TLS
  • Thay đổi Tomcat để nghe trên cổng 443
  • Kiểm tra Tomcat để tìm lỗ hổng SSL

Hãy bắt đầu…

Chuẩn bị cho chứng chỉ SSL/TLS

Bước đầu tiên là tạo CSR và được CA ký. Chúng tôi sẽ sử dụng keytool để quản lý chứng chỉ.

  • Đăng nhập vào máy chủ Tomcat
  • Điều hướng đến đường dẫn cài đặt tomcat
  • Tạo một thư mục có tên ssl
  • Thực hiện lệnh để tạo kho khóa
keytool -genkey -alias domainname -keyalg RSA -keysize 2048 -keystore filename.jks

Có hai biến trong các lệnh trên mà bạn có thể muốn thay đổi.

  • Bí danh – tốt hơn là làm cho nó có ý nghĩa để bạn có thể nhanh chóng nhận ra nó trong tương lai. Tôi thích giữ nó như một tên miền.
  • Tên tệp – Một lần nữa, bạn nên giữ lại tên miền.
  • Trước:

    [[email protected] ssl]# keytool -genkey -alias bloggerflare -keyalg RSA -keysize 2048 -keystore bloggerflare.jks
    Enter keystore password:
    Re-enter new password:
    What is your first and last name?
    [Unknown]: bloggerflare.com
    What is the name of your organizational unit?
    [Unknown]: Blogging
    What is the name of your organization?
    [Unknown]: Geek Flare
    What is the name of your City or Locality?
    [Unknown]:
    What is the name of your State or Province?
    [Unknown]:
    What is the two-letter country code for this unit?
    [Unknown]:
    Is CN=bloggerflare.com, OU=Blogging, O=Geek Flare, L=Unknown, ST=Unknown, C=Unknown correct?
    [no]: yes
    
    Enter key password for <bloggerflare>
    (RETURN if same as keystore password):
    
    [[email protected] ssl]#

    Hãy chú ý đến câu hỏi về tên. Tôi nghĩ đó là một chút khó hiểu. Đây không phải là tên của bạn, mà là tên của miền bạn muốn bảo mật.

    Sau khi cung cấp đầy đủ thông tin, nó sẽ tạo một tệp chính trong thư mục làm việc hiện tại.

    Bước tiếp theo sẽ là tạo CSR mới với kho khóa mới được tạo bằng lệnh bên dưới.

    keytool -certreq -alias bloggerflare -keyalg RSA -file bloggerflare.csr -keystore bloggerflare.jks

    Thao tác này sẽ tạo CSR mà bạn cần gửi tới CA để được ký. Nếu muốn, bạn có thể cân nhắc sử dụng nhà cung cấp chứng chỉ MIỄN PHÍ, nếu không, hãy chọn tùy chọn cao cấp.

    Tôi có chứng chỉ đã ký và sẽ tiến hành nhập vào kho khóa bằng lệnh bên dưới.

    • Giấy chứng nhận nhập khẩu gốc được cấp bởi nhà cung cấp
    keytool -importcert -alias root -file root -keystore bloggerflare.jks
    • Giấy chứng nhận trung gian nhập khẩu
    keytool -importcert -alias intermediate -file intermediate -keystore bloggerflare.jks

    Lưu ý: Nếu không nhập thư mục gốc và trung gian, bạn sẽ không thể nhập chứng chỉ miền vào kho khóa. Nếu bạn có nhiều hơn một sản phẩm trung gian, bạn cần nhập tất cả chúng.

    • Nhập chứng chỉ tên miền
    keytool -importcert -file bloggerflare.cer -keystore bloggerflare.jks -alias bloggerflare

    và bạn sẽ nhận được xác nhận rằng nó đã được cài đặt.

    Phản hồi chứng chỉ đã được cài đặt trong kho khóa

    Tuyệt, vậy là kho khóa chứng chỉ đã sẵn sàng. Hãy chuyển sang bước tiếp theo.

    Nếu bạn chưa quen với SSL và muốn tìm hiểu thêm, hãy đăng ký khóa học trực tuyến này – Hoạt động SSL/TLS.

    Kích hoạt SSL trong Tomcat

    Giả sử bạn vẫn đăng nhập vào máy chủ tomcat, hãy chuyển đến thư mục conf

    • Tạo một bản sao lưu của tệp server.xml
    • đi đến phần
    SSLEnabled="true" scheme="https" keystoreFile="ssl/bloggerflare.jks" keystorePass="chandan" clientAuth="false" sslProtocol="TLS"
    • Đừng quên thay đổi tên và mật khẩu kho khóa thành của riêng bạn
    • Khởi động lại tomcat và bạn sẽ thấy rằng tomcat có sẵn qua HTTPS

    Ngọt!

    Cổng HTTPS tiêu chuẩn

    Tại sao?

    Chà, nếu bạn nhìn vào ảnh chụp màn hình ở trên, tôi đang truy cập Tomcat qua 8080 bằng https không chuẩn và vì một số lý do khác.

    • Bạn không muốn yêu cầu người dùng sử dụng cổng tùy chỉnh
    • Trình duyệt sẽ cảnh báo bạn khi cấp chứng chỉ cho tên miền không có cổng

    Vì vậy, ý tưởng là để Tomcat lắng nghe trên cổng 443 để được truy cập bit qua https:// mà không có số cổng.

    Để thực hiện việc này, hãy chỉnh sửa tệp server.xml trong trình chỉnh sửa yêu thích của bạn

    • đi đến
    • Thay đổi cổng từ 8080 thành 443
    • Nó sẽ giống như thế này
    <Connector port="443" protocol="HTTP/1.1"
    connectionTimeout="20000"
    SSLEnabled="true" scheme="https" keystoreFile="ssl/bloggerflare.jks" keystorePass="chandan" clientAuth="false" sslProtocol="TLS"
    redirectPort="8443" />
    • Khởi động lại tomcat và truy cập ứng dụng của bạn qua https mà không cần số cổng

    Ấn tượng, đó là một thành công!

    Kiểm tra lỗ hổng SSL/TLS

    Cuối cùng, chúng tôi sẽ chạy thử nghiệm để đảm bảo rằng nó không dễ bị tấn công bởi các mối đe dọa trực tuyến.

    Có nhiều công cụ web tôi đã trình bày ở đây và ở đây tôi sẽ sử dụng SSL Labs.

    Và nó XANH – đánh giá.

    Tuy nhiên, bạn nên cuộn qua báo cáo và xem liệu bạn có tìm thấy bất kỳ lỗ hổng nào không và khắc phục nó.

    Vì vậy, đó là tất cả cho ngày hôm nay.

    Tôi hy vọng điều này sẽ giúp bạn biết quy trình bảo mật Tomcat bằng chứng chỉ SSL/TLS. Nếu bạn muốn tìm hiểu thêm, tôi đánh giá cao khóa học này.

    Mục lục