Hướng dẫn cài đặt Lest’s Encrypt trên máy chủ CentOS với Apache

Hector Hoang 3 phút đọc

Hầu hết các trình duyệt phiên bản mới đều đã bắt buộc các website khi truy cập phải có https phía trước do đó nhiều người dùng sẽ gặp rắc rối khi website của họ bị báo lỗi không bảo mật do chưa có SSL. Các dịch vụ SSL tính phí hiện có chi phí khá cao và chưa chắc đem lại hiệu quả cho website do đó một tổ chức đã đứng ra và thiết lập SSL miễn phí để mọi người đều có thể sử dụng. Bài viết này nhằm mục đích hướng dẫn cài đặt SSL miễn phí lên máy chủ linux có cấu hình apache chạy Virtual Host.

Đầu tiên chúng ta phải cài đặt github

yum -y install git

Cài github xong chúng ta sẽ clone mã nguồn của Let’s Encrypt về thư mục /opt/letsencrypt:

git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt

Cập nhật phiên bản mới nhất của Let’s Ecncrypt

cd /opt/letsencrypt && git pull

Tạm thời tắt webservice vì quá trình cài đặt sẽ cần cổng 80443

service httpd stop

Bắt đầu cài đặt

cd /opt/letsencrypt
./letsencrypt-auto

Trong quá trình cài đặt, chúng ta sẽ được hỏi email trong trường hợp cần lấy lại SSL và đồng ý một số điều khoản và điều kiện. Về sau để cài đặt SSL cho các tên miền khác, bạn chỉ cần vào thư mục /opt/letsencrypt và chạy câu lệnh ./letsencrypt-auto là các tên miền cần cài đặt sẽ được hiện ra

Khi cài đặt hoàn tất Let’s Encrypt sẽ liệt kê ra các tên miền có sẵn trên máy chủ

Chọn số ứng với tên miền cần cài đặt SSL và hệ thống sẽ tự động sinh ra các tập tin CRT và private key để cài đặt SSL theo đường dẫn cung cấp sẵn

Lưu ý chúng ta phải cài đặt mod SSL cho apache

yum install mod_ssl -y

Tạo một thư mục chứa SSL và sao chép các tập tin CRT và key này vào đường dẫn chứa các chứng thư ví dụ như tạo một thư mục ssl theo đường dẫn /etc/httpd

mkdir /etc/httpd/ssl

Sau đó sao chép chứng thư được cung cấp

cp /etc/letencrypt/live/domain/CRT.pem /etc/httpd/ssl/domain.pem

cp /etc/letencrypt/live/domain/privatekey.pem /etc/httpd/ssl/domain.key

Mở tập tin ssl.conf theo đường dẫn /etc/httpd/conf.d/ssl.conf và thêm khối sau vào cuối tập tin (lưu ý thay đổi các giá trị cho phù hợp với tên miền của bạn)

<VirtualHost *:443>
DocumentRoot “/var/www/html/domain.com/”
ServerName domain.com:443
SSLEngine on
SSLCertificateFile /etc/httpd/ssl/domain.pem
SSLCertificateKeyFile /etc/httpd/ssl/domain.key
CustomLog logs/ssl_request_log
“%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x ”%r” %b”
</VirtualHost>

Đóng và save sau đó restart dịch vụ httpd rồi truy cập thử vào website với giao thức https

Để gia hạn dịch vụ SSL các bạn đánh dòng sau:

/opt/letsencrypt/letsencrypt-auto renew –pre-hook “service httpd stop” –post-hook “service httpd start”