cài đặt ssl cho website là một trong những từ khóa được search nhiều nhất về chủ đề cài đặt ssl cho website. Trong bài viết này, lamweb.vn sẽ viết bài viết Hướng dẫn cài đặt ssl cho website mới nhất 2020
Mục lục
Hướng dẫn cài đặt ssl cho website mới nhất 2020
SSL là gì?
SSL (Secure Sockets Layer) là một công nghệ bảo mật tiêu phù hợp cho việc xây dựng một liên kết được mã hóa giữa máy chủ và máy khách – thường là một máy chủ web (trang web) và một trình duyệt, hoặc một máy chủ mail và email client (ví dụ, Outlook).
SSL cho phép các thông tin nhạy cảm như số thẻ tín dụng, số an sinh thế giới, và thông tin đăng nhập được truyền đi một phương pháp an toàn. Thông thường, dữ liệu được send giữa các trình duyệt và máy chủ web được gửi ở văn bản minh bạch – để lại cho bạn dễ bị nghe cướp. Nếu kẻ tấn công đủ sức chặn all các dữ liệu được gửi giữa trình duyệt và máy chủ web, họ đủ nội lực xem và sử dụng thông tin đó.
Cụ thể hơn, SSL là một giao thức bảo mật. Giao thức mô tả mẹo các thuật toán được sử dụng. Trong trường hợp này, giao thức SSL xác định các biến của các mã hóa cho cả các link và các dữ liệu được truyền đi.
SSL chỉ đảm bảo an toàn cho dữ liệu được truyền giữa máy chủ và máy khách. SSL hoàn toàn không giúp bảo mật máy chủ của bạn.
Tạo CSR và Private Key
Để ký một giấy chứng nhận SSL bạn cần phải gửi một CSR (Certificate Signing Request) đến nhà cung cấp chứng chỉ SSL. CSR là một khối mã với thông tin được mã hóa về doanh nghiệp của bạn và tên miền.
Để tạo CSR và Private Key, dùng lệnh sau:
openssl req -new -newkey rsa:2048 -nodes -keyout sitecuatui.com.key -out sitecuatui.com.csr
Lệnh trên dùng OpenSSL để tạo CSR và Private key. Bạn cần thay thế sitecuatui.com thành tên miền của bạn để dễ phân biệt.
kết quả xuất ra:
Generating a 2048 bit RSA private key ..................................+++ ............................+++ writing new private key lớn 'sitecuatui.com.key' ----- You are about lớn be asked lớn enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:VN string is too long, it needs to be less than 2 bytes long Country Name (2 letter code) [AU]:VN State or Province Name (full name) [Some-State]:N/A Locality Name (eg, city) []:Ho Chi Minh Organization Name (eg, company) [Internet Widgits Pty Ltd]: Organizational Unit Name (eg, section) []: Common Name (e.g. Server FQDN or YOUR name) []:sitecuatui.com Email Address []:email@sitecuatui.com Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:
Ở hiệu quả trên, bạn thấy rằng tôi đang trả lời các mục sau đây:
- Country Name: VN
- State or Province Name: N/A
- Locality Name: Ho Chi Minh (tỉnh hoặc thành phố)
- Common Name: sitecuatui.com (tên miền của bạn)
- email Address: email@sitecuatui.com
Nếu bạn là doanh nghiệp, bạn đủ nội lực điền tên doanh nghiệp ở mục Organization Name.
Common Name là gì? Common Name là tên miền mà bạn muốn dùng để tải ký chứng chỉ SSL.
- Chứng chỉ SSL sẽ được sử dụng cho domain này ở k www và có www.
- so với SSL Wildcard, chứng chỉ SSL cũng được áp dụng cho tất cả các domain con (*.sitecuatui.com). gợi ý: shop.sitecuatui.com, forum.sitecuatui.com…
CSR code
Sau khi vừa mới có tệp CSR và Private key, bạn cần get mã CSR để send đến nhà cung cấp chứng chỉ SSL. Bạn có thể lấy mã CSR trong tệp sitecuatui.com.csr bằng phương pháp sử dụng lệnh sau:
cat sitecuatui.com.csr
hiệu quả xuất ra có dạng như sau:
-----BEGIN CERTIFICATE REQUEST----- MIIC2DCCAcACAQAwgZIxCzAJBgNVBAYTAlZOMQwwCgYDVQQIDANOL0ExFDASBgNV BAcMC0hvIENoaSBNaW5oMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBM dGQxFzAVBgNVBAMMDnNpdGVjdWF0dWkuY29tMSMwIQYJKoZIhvcNAQkBFhRlbWFp bEBzaXRlY3VhdHVpLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB AMMXUg86m9ev/vxTMK0nIJpPa7h4UavKw/zqvs9QXTZJX/r84C9WzPbMsm97qSwx j3kW6q+hHDo7ipsfBKAUvp/zCWZBddkE4Cac/Hj4EW3fUKI+5a7kCUP1zdVGAwKV FFbXaJa5JffVmmiqaDdAfS9BGkrIyszKp+seEMk7DAnWtwryRI4v4f3XQvVZktam P9FZ3uiY2q4UDvyv/MrwAxgwvTlAySpdT8RoeV/FbioyLj6PSOFSZvtR1M3BZ8AC 4Cuy79JYU/u0X2qdGPbOxHCNAlwsgw2uXwf630LsaDknnaWCTKCWKUxqk89XtWkf Y7bcznArjm/YQphhOXWBWRUCAwEAAaAAMA0GCSqGSIb3DQEBCwUAA4IBAQBW+tow LOQ29EXtTHZTbzHGpguYww9s871M/WdS99FKpvujW6G3BWH2Flmhf6trZUz/Fz1R mZJlBJTJcriOv9ZEpO1iii0JH0T37EepUaPFdkG41fO1MHAmGN8QQ1VEvafCStJr ix7ErE8xNBInyDD8f9gf/YB/3d8XMCiXRZvuF+QW2tMOK0Yoe5ZmpLNDRlyxzKsI j5LtdXK03c4pqOAlqzongQlCcBPs4kslktiWJQ6bPHriuXrfL8NOpwyg+RhwOYGf O1JXEVZSNrQwDuGps7/6pp0iRTN4gySqLr/PRfvev36O5mkVrSGtUhAsdk7ef7cF kPCH2/fxzyY3UWrq -----END CERTIFICATE REQUEST-----
tải ký SSL
Sau khi đã có mã CSR, bạn cần send nó đến các nhà cung cấp chứng chỉ SSL. Ở đây, tôi sẽ đăng ký Comodo PositiveSSL tại Namecheap.
Sau khi đăng ký, để kích hoạt SSL tại Namecheap, bạn cần dán mã CSR vào mục Enter CSR để tiếp tục.
Namecheap sẽ yêu cầu bạn xác thực tên miền bằng phương pháp xác thực mail, tập tin TXT hoặc bảng ghi CNAME. mẹo không khó khăn nhất là xác thực qua email, bạn chỉ cần bấm vào link trong mail để công nhận.
Sau khi đang đăng ký và click hoạt SSL. Chứng chỉ và các tập tin quan trọng sẽ được đính kèm trong email.
setup SSL
Sau khi vừa mới nhận được chứng chỉ SSL, bạn có thể setup SSL chỉ với vài bước không khó khăn. Ở đây, tôi chỉ hướng dẫn cài đặt SSL cho Nginx, Apache và cPanel. so với các webserver khác và các nơi không giống, vui lòng tham khảo ở đây.
không có sự không giống biệt giữa hướng dẫn setup SSL cho CentOS, Ubuntu hoặc bất cứ một máy chủ nào khác. Chỉ cần bạn biết ngành để chỉnh sửa cấu ảnh cho các webserver.
trước đó, Comodo sẽ gửi 4 tệp tin là sitecuatui_com.crt
, COMODORSADomainValidationSecureServerCA.crt, COMODORSAAddTrustCA.crt và AddTrustExternalCARoot.crt. bây giờ Comodo chỉ gửi 2 tệp tin là sitecuatui_com.crt
và sitecuatui_com.ca-bundle
.
Nếu các tệp tin mà bạn nhận được là COMODORSADomainValidationSecureServerCA.crt, COMODORSAAddTrustCA.crt và AddTrustExternalCARoot.crt, bạn cần hợp nhất chúng lại thành sitecuatui_com.ca-bundle
bằng lệnh sau:
cat COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt >> sitecuatui_com.ca-bundle
Thay thế sitecuatui_com
bằng domain của bạn hoặc bất cứ gì bạn mong muốn. hiện tại chúng ta sẽ có 2 tệp tin là sitecuatui_com.crt
và sitecuatui_com.ca-bundle
. Bạn cũng đừng quên di chuyển các tệp tin này đến một kênh thích hợp.
Chung
Để nhận được các cấu ảnh tốt nhất cho trường hợp của bạn, tôi khuyến nghị bạn nên dùng Mozilla SSL Configuration Generator. Nó support bạn cấu ảnh SSL cho nhiều loại website server, các phiên bản của OpenSSL và nhiều cấu ảnh không giống.
Một số định nghĩa chung:
- Modern (hiện đại), Intermediate (trung gian) và Old (cũ): cấu ảnh này sẽ quyết định các phiên bản của hệ điều hành và trình duyệt sẽ được support.
- Server Version: phiên bản của web server, giống như là phiên bản của Nginx, Apache, Lighttpd, HAProxy và AWS ELB…
- OpenSSL Version: phiên bản của OpenSSL. Nếu bạn vừa mới sử dụng LibreSSL, có thể bạn nên chọn phiên bản mới nhất.
- HSTS Enabled: trình duyệt sẽ tự động chuyển web của bạn sang HTTPS trong một thời gian quy định, mặc định là 6 tháng.
Nginx
Dưới đây là cấu hình SSL cho Nginx.
server
listen 443 ssl http2;
listen [::]:443 ssl http2;
# certs sent to the client in SERVER HELLO are concatenated in ssl_certificate
ssl_certificate /path/to/signed_cert_plus_intermediates;
ssl_certificate_key /path/to/private_key;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
# Diffie-Hellman parameter for DHE ciphersuites, recommended 2048 bits
ssl_dhparam /path/to/dhparam.pem;
# intermediate configuration. Tweak to your needs.
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
ssl_prefer_server_ciphers on;
# HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
add_header Strict-Transport-Security max-age=15768000;
# OCSP Stapling ---
# fetch OCSP records from URL in ssl_certificate and cache them
ssl_stapling on;
ssl_stapling_verify on;
## verify chain of trust of OCSP response using Root CA and Intermediate certs
ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;
resolver ;
....
Một số giá trị cần cải thiện để phù hợp với trường hợp của bạn:
- ssl_certificate: đường kéo đến tệp tin chứng chỉ. so với Nginx, bạn cần hợp nhất 2 tệp tin là
sitecuatui_com.crt
vàsitecuatui_com.ca-bundle
thành 1 tệp tin duy nhất. Bạn đủ sức dùng lệnh sau:cat sitecuatui_com.crt sitecuatui_com.ca-bundle >> sitecuatui_com_new.crt
- ssl_certificate_key: đường kéo đến Private key, ở đây là tệp
sitecuatui.com.key
mà bạn đang tạo ở bước đầu tiên. - ssl_dhparam: chỉ định một tệp tin với các thông số DH cho mật mã DHE. dùng lệnh sau:
openssl dhparam -out /path/to/dhparam.pem 2048
/path/to/dhparam.pem
là đường kéo mà bạn muốn lưu tệp tin. - ssl_trusted_certificate: đường dẫn đến tệp tin mà tập tin này được hợp nhất bởi Root CA và Intermediate Certificates. đối với Comodo, bạn đủ nội lực tải tệp tin này bằng lệnh sau:
wget https://gist.githubusercontent.com/sergejmueller/4b53e4c810f61aca391a/raw/f175a094122b91fdda8523a90ca6dc057d70b9f1/comodo.pem
- resolver: DNS. Ví dụ:
resolver 8.8.4.4 8.8.8.8;
- Nếu phiên bản Nginx và OpenSSL của bạn support TLS 1.3, bạn đủ sức bật giao thức này, xem thêm tut về TLS 1.3.
Apache
Dưới đây là cấu ảnh SSL cho Apache. Bạn cần xây dựng tập tin cấu ảnh Virtual hosting của Apache để thêm và chỉnh sửa.
... SSLEngine on SSLCertificateFile /path/to/signed_certificate_followed_by_intermediate_certs SSLCertificateKeyFile /path/to/private/key # Uncomment the following directive when using client certificate authentication #SSLCACertificateFile /path/to/ca_certs_for_client_authentication # HSTS (mod_headers is required) (15768000 seconds = 6 months) Header always set Strict-Transport-Security "max-age=15768000" ... # intermediate configuration, tweak to your needs SSLProtocol toàn bộ -SSLv3 SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS SSLHonorCipherOrder on SSLCompression off SSLSessionTickets off # OCSP Stapling, only in httpd 2.3.3 and later SSLUseStapling on SSLStaplingResponderTimeout 5 SSLStaplingReturnResponderErrors off SSLStaplingCache shmcb:/var/run/ocsp(128000)
Một số giá trị cần refresh để thêm vào với trường hợp của bạn:
- SSLCertificateFile: đường kéo đến tệp tin chứng chỉ, ở đây là
sitecuatui_com.crt
. - SSLCertificateKeyFile: đường dẫn đến Private key, ở đây là tệp
sitecuatui.com.key
mà bạn đang tạo ở bước trước nhất. - SSLCACertificateFile: bỏ dấu # ở trước để bật chức năng này. Đây là đường dẫn đến tệp tin
sitecuatui_com.ca-bundle
.
cPanel
Việc setup SSL cho cPanel rất dễ dàng chỉ với một vài bước sau đây:
- đăng nhập vào cPanel.
- Truy cập vào mục SSL/TLS Manager hoặc SSL/TLS. lựa chọn Manage SSL Sites ở mục tiếp theo.
- Ở mục domain, hãy lựa chọn domain mà bạn mong muốn setup SSL.
- sử dụng Notepad++ để mở các tệp tin tương ứng và nhập content vào các ô sau:
- Certificate: (CRT):
sitecuatui_com.crt
- Private Key (KEY):
sitecuatui.com.key
. - Certificate Authority Bundle: (CABUNDLE):
sitecuatui_com.ca-bundle
- Certificate: (CRT):
- click Install Certificate để cài đặt SSL.
- Chứng chỉ SSL đã được cài đặt sự phát triển nếu bạn nhận được thông báo SSL hosting Successfully Installed.
Chuyển HTTP sang HTTPS
Để trang web luôn luôn sử dụng HTTPS, bạn cần phải cấu hình để máy chủ website tự động chuyển từ HTTP sang HTTPS. Nếu bạn đã dùng Cloudflare, bạn có thể chuyển hướng HTTP sang HTTPS trực tiếp qua Cloudflare. Điều này đủ sức được thực hiện bằng hướng dẫn không khó khăn dưới đây.
so với Nginx, xây dựng nginx.conf
để thêm hoặc sửa lại như sau:
server listen 80 default_server; listen [::]:80 default_server; server_name _; return 301 https://$host$request_uri;
Mã trên sẽ được ứng dụng cho tất cả các web đang có trên máy chủ. Nếu bạn chỉ mong muốn vận dụng so với một hoặc một số trang web mà bạn mong muốn, dùng mã sau:
server listen 80; listen [::]:80; server_name domain1.com www.domain1.com domain2.com www.domain2.com; return 301 https://$host$request_uri;
đối với Apache, mở tệp .htaccess
và thêm đoạn mã sau:
RewriteEngine On RewriteCond %HTTPS !=on RewriteRule ^/?(.*) https://%SERVER_NAME/$1 [R,L]
Để cài đặt HTTPS cho WordPress, bạn cần phải sửa URL từ http sang https. Bạn cũng đừng quên thêm web có HTTPS vào trong Google tìm kiếm Console nhé.
HSTS preload
HSTS là gì? HSTS (HTTP Strict Transport Security) là một cơ chế chính sách bảo mật website giúp bảo vệ các website chống lại các cuộc tấn công hạ cấp giao thức và Cookie cướp. Nó cho phép các máy chủ website để tuyên bố rằng trình duyệt website (hoặc tuân thủ các cửa hàng người dùng khác) nên chỉ tương tác với nó dùng an toàn HTTPS liên kết, và k bao giờ thông qua các giao thức HTTP k an toàn.
HSTS preload là gì? HSTS preload là danh mục các website chỉ được sử dụng HTTPS bởi Chrome. Hầu hết các trình duyệt cũng có thể có được danh mục này dựa trên Chrome. Khi bạn send tên miền của bạn vào danh sách này, trình duyệt sẽ bắt buộc web phải truy cập ở HTTPS.
gửi domain của bạn vào danh mục HSTS preload ở đây.
Lời kết
cài đặt SSL cho web có nhiều ích lợi như bảo mật, tăng thứ hạng, quét được lòng tin của người dùng. Mặc dù SSL mang lại nhiều quyền lợi nhưng nó cũng đủ sức là nguyên do làm tốc độ website chậm hơn. Hãy test và trải nghiệm nó cho trường hợp của bạn. Nhưng so với tôi, SSL làm cho trang web của tôi trở nên tốt đẹp.
Sau khi đang cài đặt SSL thành đạt, bạn đủ nội lực tra cứu nó tại SSL Server tra cứu.
Nguồn : https://www.sitecuatui.com