openplanning

Cài đặt chứng chỉ SSL miễn phí Let's Encrypt cho Tomcat Server trên Ubuntu

  1. Let's Encrypt là gì?
  2. Tạo chứng chỉ SSL Let's Encrypt
  3. Cài đặt SSL Let's Encrypt cho Tomcat

1. Let's Encrypt là gì?

Một SSL của một website cần được một tổ chức có uy tín công nhận rằng nó là an toàn, đó là lý do tại sao bạn phải bỏ tiền ra để mua một chứng chỉ (Certificate) từ một tổ chức uy tín. Trên thế giới có nhiều tổ chức uy tín cung cấp chứng chỉ SSL như Comodo, GeoTrust,...
  • SSL là gì, chứng chỉ SSL là gì?
Let's Encrypt là nhà cung cấp chứng chỉ SSL miễn phí, tự động, hoạt động vì lợi ích của cộng đồng. Nó được quản lý bởi Internet Security Research Group (ISRG).
Let's Encrypt cung cấp chứng chỉ SSL loại Domain Validation, tức là sau khi cài đặt, sẽ có một ổ khóa màu xanh trên thanh địa chỉ của trình duyệt, khi người dùng truy cập vào website của bạn.
Các chứng chỉ SSL của Let's Encryt mặc dù miễn phí nhưng nó chỉ có thời hạn hợp lệ là 3 tháng, như vậy mỗi 3 tháng bạn lại phải tạo lại chứng chỉ này. Nhưng rất đơn giản vì vậy cũng không gây nhiều phiền toái cho bạn.
Trong bài viết này tôi hướng dẫn bạn tạo một chứng chỉ SSL miễn phí Let's Encrypt trên môi trường Linux & Tomcat Server.

2. Tạo chứng chỉ SSL Let's Encrypt

Đảm bảo rằng bạn đã cài đặt TomCat thành công trên Linux (Ubuntu Server,..).
Triển khai ứng dụng của bạn trên Tomcat Server và truy cập thành công vào nó thông qua tên miền của bạn (Chẳng hạn yourdomain.com):
  • http://yourdomain.com
Install Certbot
Certbot là một công cụ nhỏ, nó giúp bạn tạo ra keys (Khoá) và signs (Chữ ký) của chứng chỉ SSL, và tự động đăng ký với tổ chức Let's Encrypt sau đó download chứng chỉ Let’s Encrypt về Server cho bạn. Mọi thứ thật đơn giản.
Đảm bảo rằng Tomcat Server đã được tắt (Shutdown). OK. Mở cửa sổ Terminal và thực thi các lệnh sau:
sudo apt-get install software-properties-common

sudo add-apt-repository ppa:certbot/certbot

sudo apt-get update

sudo apt-get install certbot
Sau khi cài đặt Certbot thành công, bạn có thể sử dụng công cụ này để tạo chứng chỉ SSL cho tên miền của bạn:
# Example:
sudo certbot certonly --standalone -d   yourdomain.com

# Example:
sudo certbot certonly --standalone -d   devlayer.net
Certbot yêu cầu bạn nhập vào email, điều này cần thiết để tổ chức Let's Encrypt thông báo cho bạn thời điểm cần cập nhập lại chứng chỉ, hoặc các thông báo liên quan tới bảo mật.
Đồng ý với các điều khoản của Let's Encrypt:
OK, Lúc này một thư mục chứa các thông tin chứng chỉ SSL đã được tạo ra trên máy chủ của bạn.
  • /etc/letsencryt
  • /etc/letsencryt/live/{yourdomain.com}

3. Cài đặt SSL Let's Encrypt cho Tomcat

Sử dụng lệnh để cấp quyền (permission) cho các tập tin:
cd /etc/letsencrypt/live/yourdomain.com

chown root:root *.pem
Tiếp theo sử dụng lệnh để copy các tập tin cert.pem, chain.pem, privkey.pem bạn tạo được ở bước trên vào thư mục {Tomcat}/conf.
cd /etc/letsencrypt/live/yourdomain.com

cp cert.pem /root/Apps/tomcat9/conf

cp chain.pem /root/Apps/tomcat9/conf

cp privkey.pem /root/Apps/tomcat9/conf
Mở tập tin server.xml và thêm vào một đoạn code.
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
     maxThreads="150" SSLEnabled="true">

   <SSLHostConfig>
        <Certificate certificateFile="conf/cert.pem"
                            certificateKeyFile="conf/privkey.pem"
                            certificateChainFile="conf/chain.pem" />
   </SSLHostConfig>

</Connector>
Khởi động lại Tomcat Server, và truy cập vào ứng dụng của bạn với https:
  • https://yourdomain.com
  • https://yourdomain.com:8443