Cách đơn giản cài đặt chứng chỉ Let’s Encrypt trên VPS sử dụng HocVPS

HocVPS không tích hợp tính năng cài đặt chứng chỉ Let’s Encrypt. Do vậy bạn cài đặt thủ công như hướng dẫn này bên hocvps.

Nhưng hướng dẫn đó khá phức tạp.

Trong bài này mình sẽ hướng dẫn bạn cách cài đặt chứng chỉ Let’s Encrypt SSL sử dụng Certbot. Nó đơn giản và phù hợp với những bạn mới làm quen VPS.

Chúng ta cùng bắt đầu.

Cài đặt Certbot

Đầu tiên bạn cài đặt Certbot sử dụng các câu lệnh sau:

12 yum install epel-releaseyum install certbot-nginx

Cài đặt chứng chỉ Let’s Encrypt SSL sử dụng Cerbot

Bạn sử dụng lệnh sau để cài đặt chứng chỉ:

1 certbot --nginx -d khamphaso.com -d www.khamphaso.com

Bạn cần nhập vào địa chỉ email và trả lời một số câu hỏi như sau:

cài đặt chứng chỉ lets Encrypt cho vps sử dụng hocvps 1 cài đặt chứng chỉ lets Encrypt cho vps sử dụng hocvps 2

Gia hạn chứng chỉ Let’s Encrypt tự động

12 export VISUAL=nano; crontab -e15 3 * * * /usr/bin/certbot renew --quiet

Bật tính năng HTTP/2

Phần cấu hình Certbot thêm vào nginx lại không hỗ trợ HTTP/2. Bạn mở file cấu hình lên:

1 nano /etc/nginx/conf.d/khamphaso.com.conf

Rồi thêm http2 vào 2 đoạn có

cài đặt chứng chỉ lets Encrypt cho vps sử dụng hocvps 5

Đồng thời bạn chuyển http thành https ở dòng rewrite:

cài đặt chứng chỉ lets Encrypt cho vps sử dụng hocvps 13

Bật tính năng HTTP/2 cho NGINX và tối ưu HTTPS

Nginx đang có vấn đề với HTTP2. Bạn có thể xem rõ hơn trong bài viết này.

HocVPS có bài bật tính năng HTTP2. Bạn xem ở đây.

Nhưng mình thích cài biên dịch Nginx từ Vultr.

Mình sẽ hướng dẫn bạn cách làm này.

Cài đặt Developer Tools:

1 yum groupinstall -y 'Development Tools'

Tải và cài đặt các thư viện Nginx phụ thuộc

1 yum install -y perl perl-devel perl-ExtUtils-Embed libxslt libxslt-devel libxml2 libxml2-devel gd gd-devel GeoIP GeoIP-devel

Tải và giải nén phiên bản mainline mới nhất của Nginx:

12 cd /root/wget https://nginx.org/download/nginx-1.13.2.tar.gz && tar zxvf nginx-1.13.2.tar.gz

Tải các thư viện sẽ biên dịch cùng với Nginx

12345678 # PCRE version 8.40wget https://ftp.pcre.org/pub/pcre/pcre-8.40.tar.gz && tar xzvf pcre-8.40.tar.gz # zlib version 1.2.11wget https://www.zlib.net/zlib-1.2.11.tar.gz && tar xzvf zlib-1.2.11.tar.gz # OpenSSL version 1.1.0fwget https://www.openssl.org/source/openssl-1.1.0f.tar.gz && tar xzvf openssl-1.1.0f.tar.gz

Loại bỏ các file .tar.gz

1 rm -rf *.tar.gz

Đi tới thư mục source code của Nginx:

1 cd ~/nginx-1.13.2

Copy trang sổ tay của Nginx tới /usr/share/man/man8:

12 cp ~/nginx-1.13.2/man/nginx.8 /usr/share/man/man8gzip /usr/share/man/man8/nginx.8

Biên dịch và cài đặt Nginx:

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 ./configure --prefix=/etc/nginx \            --sbin-path=/usr/sbin/nginx \            --modules-path=/usr/lib64/nginx/modules \            --conf-path=/etc/nginx/nginx.conf \            --error-log-path=/var/log/nginx/error.log \            --pid-path=/var/run/nginx.pid \            --lock-path=/var/run/nginx.lock \            --user=nginx \            --group=nginx \            --build=CentOS \            --builddir=nginx-1.13.2 \            --with-select_module \            --with-poll_module \            --with-threads \            --with-file-aio \            --with-http_ssl_module \            --with-http_v2_module \            --with-http_realip_module \            --with-http_addition_module \            --with-http_xslt_module=dynamic \            --with-http_image_filter_module=dynamic \            --with-http_geoip_module=dynamic \            --with-http_sub_module \            --with-http_dav_module \            --with-http_flv_module \            --with-http_mp4_module \            --with-http_gunzip_module \            --with-http_gzip_static_module \            --with-http_auth_request_module \            --with-http_random_index_module \            --with-http_secure_link_module \            --with-http_degradation_module \            --with-http_slice_module \            --with-http_stub_status_module \            --http-log-path=/var/log/nginx/access.log \            --http-client-body-temp-path=/var/cache/nginx/client_temp \            --http-proxy-temp-path=/var/cache/nginx/proxy_temp \            --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \            --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \            --http-scgi-temp-path=/var/cache/nginx/scgi_temp \            --with-mail=dynamic \            --with-mail_ssl_module \            --with-stream=dynamic \            --with-stream_ssl_module \            --with-stream_realip_module \            --with-stream_geoip_module=dynamic \            --with-stream_ssl_preread_module \            --with-compat \            --with-pcre=../pcre-8.40 \            --with-pcre-jit \            --with-zlib=../zlib-1.2.11 \            --with-openssl=../openssl-1.1.0f \            --with-openssl-opt=no-nextprotoneg \            --with-debug  make sudo make install

Khởi động lại Nginx:

1 systemctl restart nginx

Check lại phiên bản Nginx

1 nginx -V

Phiên bản OpenSSL như thế này là OK:

cài đặt chứng chỉ lets Encrypt cho vps sử dụng hocvps 8

Kiểm tra lại bạn sẽ thấy giao thức Http/2 đã được bật:

cài đặt chứng chỉ lets Encrypt cho vps sử dụng hocvps 9

Tối ưu Https để kiểm tra SSL Lab Test được A+ như bên dưới:

cài đặt chứng chỉ lets Encrypt cho vps sử dụng hocvps 10

Cách tối ưu bạn xem bài này.

Bạn chỉ cần cấu hình Nginx hỗ trợ HSTS (điểm 6 trong bài) là đủ.

Thêm dòng sau vào file cấu hình Nginx và khởi động lại Nginx:

1 add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

cài đặt chứng chỉ lets Encrypt cho vps sử dụng hocvps 12

Thế là xong.

Với cách đơn giản trên đây việc cài đặt chứng chỉ Let’s Encrypt đã không còn phải cấu hình thủ công như bên hocvps nữa.

Xem bài trong seriesPhần trước: Hướng dẫn cài đặt WordPress trên CentOS 6/7 với HocVPS scriptPhần kế tiếp: Hướng dẫn cài đặt Memcached trên CentOS 7 cài HocVPS
Tìm kiếm