Cài đặt chứng chỉ SSL ‘đơn giản’ – Nginx & Apache

Cài đặt chứng chỉ SSL miễn phí từ Let’s Encrypt nhanh chóng bằng công cụ EFF’s Certbot.

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install certbot

Quá trình cài đặt bạn cứ chọn Yes (Y) và Enter, sau khi cài đặt hoàn tất bạn chạy lệnh dưới để bắt đầu quá trình cài đặt chứng chỉ:

certbot certonly

Sau khi gõ lệnh trên, các bạn làm theo các bước họ yêu cầu tương tự như minh họa bên dưới:

root@keep:~# certbot certonly
Saving debug log to /var/log/letsencrypt/letsencrypt.log

How would you like to authenticate with the ACME CA?
-------------------------------------------------------------------------------
1: Spin up a temporary webserver (standalone)
2: Place files in webroot directory (webroot)
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 1
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel):nguyenlt@adnsg.com

-------------------------------------------------------------------------------
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. You must agree
in order to register with the ACME server at
https://acme-v01.api.letsencrypt.org/directory
-------------------------------------------------------------------------------
(A)gree/(C)ancel: A

-------------------------------------------------------------------------------
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about EFF and
our work to encrypt the web, protect its users and defend digital rights.
-------------------------------------------------------------------------------
(Y)es/(N)o: Y
Please enter in your domain name(s) (comma and/or space separated)  (Enter 'c'
to cancel):hello.adnsg.com www.hello.adnsg.com
Obtaining a new certificate
Performing the following challenges:
tls-sni-01 challenge for hello.adnsg.com
tls-sni-01 challenge for www.hello.adnsg.com
Waiting for verification...
Cleaning up challenges

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/hello.adnsg.com/fullchain.pem. Your cert will
   expire on 2017-09-02. To obtain a new or tweaked version of this
   certificate in the future, simply run certbot again. To
   non-interactively renew *all* of your certificates, run "certbot
   renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Chú ý: mỗi tuần Let’s Encrypt chỉ cho 1 domain đăng ký chứng chỉ 5 lần, nếu bạn làm sai hoặc lỗi phải đợi sang tuần.

Cài đặt chứng chỉ cho Nginx:

Chỉnh sửa tệp hello.adnsg.com.conf theo đường dẫn /etc/nginx/conf.d/hello.adnsg.com.conf 

Cập nhật code tương tự bên dưới:

server {
    listen 443 spdy ssl;
    server_name
        hello.adnsg.com
        www.hello.adnsg.com
    ;

    ssl on;
    # letsencrypt certificates
    ssl_certificate /etc/letsencrypt/live/hello.adnsg.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/hello.adnsg.com/privkey.pem;
    
    #SSL Optimization
    ssl_session_timeout 1d;
    ssl_session_cache shared:SSL:20m;
    ssl_session_tickets off;
    
    # modern configuration
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    
    ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK';

    # OCSP stapling
    ssl_stapling on;
    ssl_stapling_verify on;
    
    # verify chain of trust of OCSP response
    ssl_trusted_certificate /etc/letsencrypt/live/hello.adnsg.com/chain.pem;
    
    #root directory and logfiles
    root /home/nginx/domains/hello.adnsg.com/public;

    location / {
        index index.php index.html index.htm;
        try_files $uri $uri/ /index.php?$uri&$args;
     
    }

  include /usr/local/nginx/conf/staticfiles.conf;
  include /usr/local/nginx/conf/php.conf;
  include /usr/local/nginx/conf/drop.conf;

}

Lưu lại và khởi động lại NGINX.

service nginx restart

Cài đặt chứng chỉ cho Apache:

Mở tập tin /etc/httpd/conf.d/ssl.conf lên và tìm cặp thẻ <VirtualHost default:443>……….</VirtualHost> rồi xóa đi và chèn đoạn này vào:

<VirtualHost *:443>
DocumentRoot "/home/hello.adnsg.com/public"
ServerName hello.adnsg.com:443
 
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/hello.adnsg.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/hello.adnsg.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/hello.adnsg.com/chain.pem
CustomLog logs/ssl_request_log \
 "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
  • DocumentRoot: Đường dẫn tới thư mục lưu website.
  • ServerName: Domain của website, nhớ gõ thêm số port 443 vào đuôi.
  • SSLCertificateFile: Đường dẫn file .crt vừa upload.
  • SSLCertficateKeyFile: Đường dẫn file .key đã tạo ở bước đầu.

Lưu lại, khởi động lại Apache.

service httpd restart

Ở trên mình hướng dẫn các bạn cách cài đặt thủ công, để tránh sai sót. Ví dụ, mình đang dùng dịch vụ tự động cấu hình server ở  nên cấu trúc tên của webserver khác với mặc dịnh nên sẽ phát sinh lỗi ( nginx-sp chứ không phải nginx ). Do vậy nếu bạn không rõ mình đang dùng dịch vụ gì hãy làm thủ công, 1 là quen hơn với giao diện bash, 2 là tránh xảy ra lỗi không mong muốn khiến cả server dừng hoạt động.

Cấu hình tự động bằng cách truy cập vào  https://certbot.eff.org/ và thực hiện theo từng bước ở website.

Stay in touch!

Leave a reply:

Your email address will not be published.