{"id":131114,"date":"2026-10-22T12:14:45","date_gmt":"2026-10-22T05:14:45","guid":{"rendered":"https:\/\/tino.vn\/blog\/?p=131114"},"modified":"2026-10-22T12:14:45","modified_gmt":"2026-10-22T05:14:45","slug":"cai-ssl-tren-vps","status":"publish","type":"post","link":"https:\/\/tino.vn\/blog\/cai-ssl-tren-vps\/","title":{"rendered":"C\u00e1ch c\u00e0i SSL tr\u00ean VPS: Let&#8217;s Encrypt, Certbot v\u00e0 SSL tr\u1ea3 ph\u00ed"},"content":{"rendered":"\n<p class=\"tino-byline wp-block-paragraph\"><em>T\u00e1c gi\u1ea3: <a href=\"https:\/\/tino.vn\/blog\/author\/dong-tung\/\">\u0110\u00f4ng T\u00f9ng<\/a> \u00b7 Duy\u1ec7t k\u1ef9 thu\u1eadt: <a href=\"https:\/\/tino.vn\/blog\/author\/vanphong\/\">Nguy\u1ec5n V\u0103n Phong<\/a> \u00b7 C\u1eadp nh\u1eadt: 20\/10\/2026<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>C\u00e1ch ph\u1ed5 bi\u1ebfn \u0111\u1ec3 c\u00e0i SSL tr\u00ean VPS l\u00e0 d\u00f9ng ch\u1ee9ng ch\u1ec9 mi\u1ec5n ph\u00ed c\u1ee7a Let&#8217;s Encrypt v\u1edbi c\u00f4ng c\u1ee5 Certbot.<\/strong> B\u1ea1n tr\u1ecf t\u00ean mi\u1ec1n v\u1ec1 IP c\u1ee7a VPS, m\u1edf c\u1ed5ng 80 v\u00e0 443, c\u00e0i Certbot r\u1ed3i ch\u1ea1y <code>certbot --nginx<\/code> (ho\u1eb7c <code>--apache<\/code>). Certbot t\u1ef1 xin ch\u1ee9ng ch\u1ec9, s\u1eeda c\u1ea5u h\u00ecnh web server v\u00e0 \u0111\u1eb7t l\u1ecbch gia h\u1ea1n, n\u00ean website c\u00f3 HTTPS ch\u1ec9 sau v\u00e0i l\u1ec7nh.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Ch\u1ee9ng ch\u1ec9 Let&#8217;s Encrypt c\u00f3 hi\u1ec7u l\u1ef1c m\u1eb7c \u0111\u1ecbnh 90 ng\u00e0y<\/strong> v\u00e0 \u0111\u01b0\u1ee3c Certbot gia h\u1ea1n t\u1ef1 \u0111\u1ed9ng; ki\u1ec3m tra b\u1eb1ng <code>sudo certbot renew --dry-run<\/code>.<\/li>\n\n\n<li><strong>C\u1ea7n ch\u1ee9ng ch\u1ec9 x\u00e1c th\u1ef1c doanh nghi\u1ec7p (OV\/EV) ho\u1eb7c c\u00f3 b\u1ea3o h\u00e0nh:<\/strong> d\u00f9ng ch\u1ee9ng ch\u1ec9 SSL tr\u1ea3 ph\u00ed, t\u1ea1o CSR tr\u00ean VPS r\u1ed3i gh\u00e9p chain khi c\u00e0i.<\/li>\n\n\n<li><strong>\u0110ang d\u00f9ng control panel<\/strong> nh\u01b0 aaPanel, CyberPanel: c\u00e0i SSL ngay trong panel, kh\u00f4ng c\u1ea7n ch\u1ea1y Certbot ri\u00eang.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">B\u00e0i n\u00e0y l\u00e0 m\u1ed9t b\u01b0\u1edbc trong l\u1ed9 tr\u00ecnh <a href=\"https:\/\/tino.vn\/blog\/cach-su-dung-vps\/\">c\u00e1ch s\u1eed d\u1ee5ng VPS cho ng\u01b0\u1eddi m\u1edbi<\/a>. C\u00e1c l\u1ec7nh d\u01b0\u1edbi \u0111\u00e2y ch\u1ea1y tr\u00ean Ubuntu 24.04 LTS, \u0111\u0103ng nh\u1eadp b\u1eb1ng user c\u00f3 quy\u1ec1n sudo.<\/p>\n\n\n\n<h2 id=\"C\u1ea7n_chu\u1ea9n_b\u1ecb_g\u00ec_tr\u01b0\u1edbc_khi_c\u00e0i_SSL_tr\u00ean_VPS?\">C\u1ea7n chu\u1ea9n b\u1ecb g\u00ec tr\u01b0\u1edbc khi c\u00e0i SSL tr\u00ean VPS?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Tr\u01b0\u1edbc khi ch\u1ea1y Certbot, b\u1ea1n c\u1ea7n ba th\u1ee9: t\u00ean mi\u1ec1n \u0111\u00e3 tr\u1ecf \u0111\u00fang v\u1ec1 IP c\u1ee7a VPS, c\u1ed5ng 80 v\u00e0 443 m\u1edf t\u1eeb Internet. Th\u1ee9 ba l\u00e0 web server (Nginx ho\u1eb7c Apache) \u0111ang ch\u1ea1y v\u1edbi khai b\u00e1o \u0111\u00fang t\u00ean mi\u1ec1n. Thi\u1ebfu m\u1ed9t trong ba, Let&#8217;s Encrypt s\u1ebd kh\u00f4ng x\u00e1c th\u1ef1c \u0111\u01b0\u1ee3c t\u00ean mi\u1ec1n v\u00e0 t\u1eeb ch\u1ed1i c\u1ea5p ch\u1ee9ng ch\u1ec9.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>DNS tr\u1ecf \u0111\u00fang:<\/strong> b\u1ea3n ghi A tr\u1ecf v\u1ec1 IPv4 c\u1ee7a VPS. N\u1ebfu c\u00f3 b\u1ea3n ghi AAAA (IPv6) th\u00ec c\u0169ng ph\u1ea3i tr\u1ecf \u0111\u00fang IPv6 c\u1ee7a VPS, v\u00ec Let&#8217;s Encrypt c\u00f3 th\u1ec3 ki\u1ec3m tra qua IPv6. Xem <a href=\"https:\/\/tino.vn\/blog\/docs\/tro-ten-mien-ve-vps\/\">c\u00e1ch tr\u1ecf t\u00ean mi\u1ec1n v\u1ec1 VPS<\/a>.<\/li>\n\n\n<li><strong>C\u1ed5ng 80 m\u1edf:<\/strong> ki\u1ec3u x\u00e1c th\u1ef1c HTTP-01 m\u00e0 Certbot d\u00f9ng m\u1eb7c \u0111\u1ecbnh ch\u1ec9 ch\u1ea1y tr\u00ean c\u1ed5ng 80, kh\u00f4ng \u0111\u1ed5i \u0111\u01b0\u1ee3c sang c\u1ed5ng kh\u00e1c (<a href=\"https:\/\/letsencrypt.org\/docs\/challenge-types\/\" rel=\"nofollow noopener\" target=\"_blank\">Let&#8217;s Encrypt<\/a>). C\u1ed5ng 443 c\u1ea7n m\u1edf \u0111\u1ec3 ng\u01b0\u1eddi d\u00f9ng truy c\u1eadp HTTPS.<\/li>\n\n\n<li><strong>Web server c\u00f3 server block (Nginx) ho\u1eb7c virtual host (Apache)<\/strong> khai b\u00e1o <code>server_name<\/code> \/ <code>ServerName<\/code> l\u00e0 t\u00ean mi\u1ec1n c\u1ee7a b\u1ea1n. Xem th\u00eam <a href=\"https:\/\/tino.vn\/blog\/nginx-la-gi\/\">Nginx l\u00e0 g\u00ec<\/a>.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Ki\u1ec3m tra nhanh tr\u00ean VPS (thay <code>tenmien.vn<\/code> b\u1eb1ng t\u00ean mi\u1ec1n c\u1ee7a b\u1ea1n):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># IP m\u00e0 t\u00ean mi\u1ec1n \u0111ang tr\u1ecf t\u1edbi, ph\u1ea3i tr\u00f9ng IP c\u1ee7a VPS\ndig +short tenmien.vn A\ndig +short tenmien.vn AAAA\n\n# M\u1edf c\u1ed5ng web tr\u00ean UFW (profile c\u00f3 s\u1eb5n khi \u0111\u00e3 c\u00e0i Nginx)\nsudo ufw allow 'Nginx Full'\nsudo ufw status<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">N\u1ebfu d\u00f9ng Apache, profile t\u01b0\u01a1ng \u1ee9ng l\u00e0 <code>'Apache Full'<\/code>. N\u1ebfu ch\u01b0a b\u1eadt UFW, h\u00e3y m\u1edf c\u1ed5ng SSH tr\u01b0\u1edbc r\u1ed3i m\u1edbi ch\u1ea1y <code>sudo ufw enable<\/code> \u0111\u1ec3 kh\u00f4ng t\u1ef1 kh\u00f3a m\u00ecnh kh\u1ecfi VPS.<\/p>\n\n\n\n<h2 id=\"C\u00e1ch_c\u00e0i_SSL_Let&#8217;s_Encrypt_cho_Nginx_tr\u00ean_Ubuntu_24.04\">C\u00e1ch c\u00e0i SSL Let&#8217;s Encrypt cho Nginx tr\u00ean Ubuntu 24.04<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Theo <a href=\"https:\/\/certbot.eff.org\/instructions?ws=nginx&#038;os=snap\" rel=\"nofollow noopener\" target=\"_blank\">h\u01b0\u1edbng d\u1eabn ch\u00ednh th\u1ee9c c\u1ee7a Certbot<\/a>, c\u00e1ch c\u00e0i \u0111\u01b0\u1ee3c khuy\u1ebfn ngh\u1ecb l\u00e0 g\u00f3i snap. G\u1ee1 b\u1ea3n Certbot c\u0169 c\u00e0i b\u1eb1ng apt (n\u1ebfu c\u00f3), c\u00e0i Certbot b\u1eb1ng snap, t\u1ea1o l\u1ed1i t\u1eaft l\u1ec7nh, r\u1ed3i ch\u1ea1y <code>certbot --nginx<\/code>. B\u1ea3n Ubuntu Server 24.04 chu\u1ea9n c\u00f3 s\u1eb5n snapd. N\u1ebfu l\u1ec7nh <code>snap<\/code> kh\u00f4ng c\u00f3 (m\u1ed9t s\u1ed1 m\u1eabu VPS \u0111\u00e3 g\u1ee1 snapd), c\u00e0i b\u1eb1ng <code>sudo apt install snapd<\/code>. N\u1ebfu mu\u1ed1n hi\u1ec3u Certbot l\u00e0m g\u00ec tr\u01b0\u1edbc khi ch\u1ea1y, xem b\u00e0i <a href=\"https:\/\/tino.vn\/blog\/certbot-la-gi\/\">Certbot l\u00e0 g\u00ec<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1400\" height=\"750\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/cai-ssl-tren-vps-quy-trinh.webp\" alt=\"Quy tr\u00ecnh 5 b\u01b0\u1edbc c\u00e0i SSL Let&#x27;s Encrypt tr\u00ean VPS Ubuntu 24.04: tr\u1ecf DNS, m\u1edf c\u1ed5ng 80 v\u00e0 443, c\u00e0i Certbot b\u1eb1ng snap, ch\u1ea1y certbot --nginx ho\u1eb7c --apache, ki\u1ec3m tra gia h\u1ea1n b\u1eb1ng certbot renew --dry-run\" class=\"wp-image-131099\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/cai-ssl-tren-vps-quy-trinh.webp 1400w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/cai-ssl-tren-vps-quy-trinh-300x161.webp 300w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/cai-ssl-tren-vps-quy-trinh-1024x549.webp 1024w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/cai-ssl-tren-vps-quy-trinh-768x411.webp 768w\" sizes=\"(max-width: 1400px) 100vw, 1400px\" \/><\/figure>\n\n\n\n<h3 id=\"B\u01b0\u1edbc_1:_C\u00e0i_Certbot\">B\u01b0\u1edbc 1: C\u00e0i Certbot<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># G\u1ee1 b\u1ea3n Certbot c\u00e0i b\u1eb1ng apt n\u1ebfu c\u00f3, tr\u00e1nh tr\u00f9ng hai b\u1ea3n\nsudo apt remove certbot\n\n# C\u00e0i Certbot b\u1eb1ng snap v\u00e0 t\u1ea1o l\u1ed1i t\u1eaft l\u1ec7nh\nsudo snap install --classic certbot\nsudo ln -s \/snap\/bin\/certbot \/usr\/local\/bin\/certbot<\/code><\/pre>\n\n\n\n<h3 id=\"B\u01b0\u1edbc_2:_Xin_v\u00e0_c\u00e0i_ch\u1ee9ng_ch\u1ec9\">B\u01b0\u1edbc 2: Xin v\u00e0 c\u00e0i ch\u1ee9ng ch\u1ec9<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># Certbot \u0111\u1ecdc server_name trong c\u1ea5u h\u00ecnh Nginx, xin ch\u1ee9ng ch\u1ec9 v\u00e0 t\u1ef1 s\u1eeda c\u1ea5u h\u00ecnh\nsudo certbot --nginx\n\n# Ho\u1eb7c ch\u1ec9 \u0111\u1ecbnh r\u00f5 t\u00ean mi\u1ec1n\nsudo certbot --nginx -d tenmien.vn -d www.tenmien.vn<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">L\u1ea7n \u0111\u1ea7u ch\u1ea1y, Certbot h\u1ecfi email (d\u00f9ng cho t\u00e0i kho\u1ea3n v\u00e0 th\u00f4ng b\u00e1o quan tr\u1ecdng, c\u00f3 th\u1ec3 b\u1ecf tr\u1ed1ng) v\u00e0 y\u00eau c\u1ea7u \u0111\u1ed3ng \u00fd \u0111i\u1ec1u kho\u1ea3n. Let&#8217;s Encrypt \u0111\u00e3 ng\u1eebng g\u1eedi email nh\u1eafc h\u1ebft h\u1ea1n t\u1eeb ng\u00e0y 04\/06\/2025 (<a href=\"https:\/\/letsencrypt.org\/2025\/06\/26\/expiration-notification-service-has-ended\/\" rel=\"nofollow noopener\" target=\"_blank\">Let&#8217;s Encrypt<\/a>). V\u00ec v\u1eady h\u00e3y t\u1ef1 \u0111\u1eb7t c\u1ea3nh b\u00e1o b\u1eb1ng m\u1ed9t d\u1ecbch v\u1ee5 gi\u00e1m s\u00e1t ch\u1ee9ng ch\u1ec9 ho\u1eb7c gi\u00e1m s\u00e1t uptime.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">N\u1ebfu mu\u1ed1n t\u1ef1 s\u1eeda c\u1ea5u h\u00ecnh Nginx, d\u00f9ng <code>sudo certbot certonly --nginx<\/code>: Certbot ch\u1ec9 l\u1ea5y ch\u1ee9ng ch\u1ec9, l\u01b0u \u1edf <code>\/etc\/letsencrypt\/live\/tenmien.vn\/<\/code> v\u1edbi <code>fullchain.pem<\/code> v\u00e0 <code>privkey.pem<\/code> (<a href=\"https:\/\/eff-certbot.readthedocs.io\/en\/stable\/using.html\" rel=\"nofollow noopener\" target=\"_blank\">t\u00e0i li\u1ec7u Certbot<\/a>).<\/p>\n\n\n\n<h3 id=\"B\u01b0\u1edbc_3:_Ki\u1ec3m_tra\">B\u01b0\u1edbc 3: Ki\u1ec3m tra<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># Danh s\u00e1ch ch\u1ee9ng ch\u1ec9 Certbot \u0111ang qu\u1ea3n l\u00fd, k\u00e8m ng\u00e0y h\u1ebft h\u1ea1n\nsudo certbot certificates\n\n# Ki\u1ec3m tra c\u1ea5u h\u00ecnh Nginx sau khi Certbot s\u1eeda\nsudo nginx -t<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">M\u1edf <code>https:\/\/tenmien.vn<\/code> tr\u00ean tr\u00ecnh duy\u1ec7t v\u00e0 xem bi\u1ec3u t\u01b0\u1ee3ng \u1ed5 kh\u00f3a. H\u00e3y th\u1eed c\u1ea3 b\u1ea3n c\u00f3 v\u00e0 kh\u00f4ng c\u00f3 <code>www<\/code>, v\u00ec m\u1ed7i t\u00ean ph\u1ea3i n\u1eb1m trong ch\u1ee9ng ch\u1ec9.<\/p>\n\n\n\n<h2 id=\"C\u00e0i_SSL_Let&#8217;s_Encrypt_cho_Apache_c\u00f3_g\u00ec_kh\u00e1c?\">C\u00e0i SSL Let&#8217;s Encrypt cho Apache c\u00f3 g\u00ec kh\u00e1c?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">V\u1edbi Apache, c\u00e1c b\u01b0\u1edbc gi\u1ed1ng Nginx, ch\u1ec9 thay plugin: ch\u1ea1y <code>sudo certbot --apache<\/code> thay cho <code>--nginx<\/code> (<a href=\"https:\/\/certbot.eff.org\/instructions?ws=apache&#038;os=snap\" rel=\"nofollow noopener\" target=\"_blank\">h\u01b0\u1edbng d\u1eabn Certbot cho Apache<\/a>). Certbot \u0111\u1ecdc <code>ServerName<\/code> v\u00e0 <code>ServerAlias<\/code> trong virtual host, t\u1ea1o th\u00eam file c\u1ea5u h\u00ecnh c\u1ed5ng 443 v\u00e0 c\u00f3 th\u1ec3 b\u1eadt chuy\u1ec3n h\u01b0\u1edbng HTTP sang HTTPS.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt remove certbot     # g\u1ee1 b\u1ea3n c\u00e0i b\u1eb1ng apt n\u1ebfu c\u00f3\nsudo snap install --classic certbot\nsudo ln -s \/snap\/bin\/certbot \/usr\/local\/bin\/certbot\nsudo ufw allow 'Apache Full'\nsudo certbot --apache -d tenmien.vn -d www.tenmien.vn\nsudo apache2ctl configtest<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">N\u1ebfu ch\u01b0a r\u00f5 n\u00ean ch\u1ecdn web server n\u00e0o, xem <a href=\"https:\/\/tino.vn\/blog\/apache-la-gi\/\">Apache l\u00e0 g\u00ec<\/a> v\u00e0 so s\u00e1nh v\u1edbi Nginx.<\/p>\n\n\n\n<h2 id=\"Ch\u1ee9ng_ch\u1ec9_Let&#8217;s_Encrypt_c\u00f3_hi\u1ec7u_l\u1ef1c_bao_l\u00e2u_v\u00e0_gia_h\u1ea1n_th\u1ebf_n\u00e0o?\">Ch\u1ee9ng ch\u1ec9 Let&#8217;s Encrypt c\u00f3 hi\u1ec7u l\u1ef1c bao l\u00e2u v\u00e0 gia h\u1ea1n th\u1ebf n\u00e0o?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ch\u1ee9ng ch\u1ec9 Let&#8217;s Encrypt m\u1eb7c \u0111\u1ecbnh c\u00f3 hi\u1ec7u l\u1ef1c 90 ng\u00e0y (<a href=\"https:\/\/letsencrypt.org\/docs\/faq\/\" rel=\"nofollow noopener\" target=\"_blank\">FAQ Let&#8217;s Encrypt<\/a>). Certbot c\u00e0i k\u00e8m m\u1ed9t t\u00e1c v\u1ee5 ch\u1ea1y \u0111\u1ecbnh k\u1ef3 (systemd timer ho\u1eb7c cron) \u0111\u1ec3 t\u1ef1 gia h\u1ea1n. V\u00ec v\u1eady b\u1ea1n kh\u00f4ng c\u1ea7n gia h\u1ea1n b\u1eb1ng tay. Vi\u1ec7c c\u1ee7a b\u1ea1n l\u00e0 ki\u1ec3m tra t\u00e1c v\u1ee5 \u0111\u00f3 ch\u1ea1y \u0111\u01b0\u1ee3c, v\u00e0 ki\u1ec3m tra l\u1ea1i m\u1ed7i khi \u0111\u1ed5i c\u1ea5u h\u00ecnh web server ho\u1eb7c DNS.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Ch\u1ea1y th\u1eed gia h\u1ea1n, kh\u00f4ng l\u01b0u ch\u1ee9ng ch\u1ec9 th\u1eadt\nsudo certbot renew --dry-run\n\n# Xem l\u1ecbch ch\u1ea1y t\u1ef1 \u0111\u1ed9ng (b\u1ea3n snap c\u00f3 timer snap.certbot.renew)\nsystemctl list-timers | grep certbot<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">T\u1eeb Certbot 4.0, ch\u1ee9ng ch\u1ec9 \u0111\u01b0\u1ee3c gia h\u1ea1n khi c\u00f2n d\u01b0\u1edbi 1\/3 th\u1eddi h\u1ea1n; v\u1edbi ch\u1ee9ng ch\u1ec9 90 ng\u00e0y l\u00e0 kho\u1ea3ng 30 ng\u00e0y cu\u1ed1i (<a href=\"https:\/\/eff-certbot.readthedocs.io\/en\/stable\/using.html\" rel=\"nofollow noopener\" target=\"_blank\">t\u00e0i li\u1ec7u Certbot<\/a>). N\u1ebfu <code>--dry-run<\/code> b\u00e1o l\u1ed7i, gia h\u1ea1n th\u1eadt c\u0169ng s\u1ebd l\u1ed7i: x\u1eed l\u00fd ngay thay v\u00ec \u0111\u1ee3i ch\u1ee9ng ch\u1ec9 h\u1ebft h\u1ea1n.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>M\u1ed1c<\/th><th>Th\u1eddi h\u1ea1n ch\u1ee9ng ch\u1ec9 m\u1eb7c \u0111\u1ecbnh (profile classic)<\/th><th>B\u1ea1n c\u1ea7n l\u00e0m g\u00ec<\/th><\/tr><\/thead><tbody><tr><td>Hi\u1ec7n t\u1ea1i (10\/2026)<\/td><td>90 ng\u00e0y<\/td><td>Gi\u1eef gia h\u1ea1n t\u1ef1 \u0111\u1ed9ng, ki\u1ec3m tra b\u1eb1ng <code>--dry-run<\/code><\/td><\/tr><tr><td>T\u1eeb 10\/02\/2027<\/td><td>64 ng\u00e0y<\/td><td>Kh\u00f4ng c\u1ea7n \u0111\u1ed5i g\u00ec n\u1ebfu gia h\u1ea1n t\u1ef1 \u0111\u1ed9ng theo t\u1ef7 l\u1ec7 th\u1eddi h\u1ea1n<\/td><\/tr><tr><td>T\u1eeb 16\/02\/2028<\/td><td>45 ng\u00e0y<\/td><td>Kh\u00f4ng t\u1ef1 vi\u1ebft cron gia h\u1ea1n c\u1ed1 \u0111\u1ecbnh m\u1ed7i 60 ng\u00e0y; d\u00f9ng <code>certbot renew<\/code> m\u1eb7c \u0111\u1ecbnh v\u00e0 \u0111\u1eb7t gi\u00e1m s\u00e1t h\u1ebft h\u1ea1n ri\u00eang (Let&#8217;s Encrypt kh\u00f4ng c\u00f2n g\u1eedi email nh\u1eafc)<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Ngu\u1ed3n: <a href=\"https:\/\/letsencrypt.org\/2025\/12\/02\/from-90-to-45\" rel=\"nofollow noopener\" target=\"_blank\">Let&#8217;s Encrypt: Decreasing Certificate Lifetimes to 45 Days<\/a> (truy c\u1eadp 19\/10\/2026).<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">L\u00fd do c\u1ee7a b\u1ea3ng tr\u00ean: Let&#8217;s Encrypt cho bi\u1ebft l\u1ecbch gia h\u1ea1n c\u1ed1 \u0111\u1ecbnh 60 ng\u00e0y s\u1ebd kh\u00f4ng c\u00f2n \u0111\u1ee7 khi ch\u1ee9ng ch\u1ec9 ch\u1ec9 c\u00f2n 45 ng\u00e0y. N\u1ebfu b\u1ea1n t\u1eebng t\u1ef1 vi\u1ebft cron ch\u1ea1y Certbot theo s\u1ed1 ng\u00e0y c\u1ed1 \u0111\u1ecbnh, h\u00e3y \u0111\u1ed5i v\u1ec1 <code>certbot renew<\/code> m\u1eb7c \u0111\u1ecbnh.<\/p>\n\n\n\n<h2 id=\"C\u00e1ch_c\u00e0i_SSL_tr\u1ea3_ph\u00ed_tr\u00ean_VPS_(t\u1ea1o_CSR,_gh\u00e9p_chain)\">C\u00e1ch c\u00e0i SSL tr\u1ea3 ph\u00ed tr\u00ean VPS (t\u1ea1o CSR, gh\u00e9p chain)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">V\u1edbi ch\u1ee9ng ch\u1ec9 tr\u1ea3 ph\u00ed, b\u1ea1n t\u1ef1 t\u1ea1o private key v\u00e0 CSR (y\u00eau c\u1ea7u k\u00fd ch\u1ee9ng ch\u1ec9) tr\u00ean VPS r\u1ed3i g\u1eedi CSR cho nh\u00e0 cung c\u1ea5p ch\u1ee9ng ch\u1ec9 (CA) \u0111\u1ec3 x\u00e1c th\u1ef1c. Sau \u0111\u00f3 b\u1ea1n nh\u1eadn v\u1ec1 file ch\u1ee9ng ch\u1ec9 v\u00e0 c\u00e1c ch\u1ee9ng ch\u1ec9 trung gian. B\u01b0\u1edbc d\u1ec5 sai nh\u1ea5t l\u00e0 gh\u00e9p chain: ch\u1ee9ng ch\u1ec9 c\u1ee7a t\u00ean mi\u1ec1n ph\u1ea3i \u0111\u1ee9ng tr\u01b0\u1edbc ch\u1ee9ng ch\u1ec9 trung gian.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1400\" height=\"750\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/cai-ssl-tren-vps-tra-phi-v2.webp\" alt=\"C\u00e1c b\u01b0\u1edbc c\u00e0i SSL tr\u1ea3 ph\u00ed tr\u00ean VPS: t\u1ea1o private key v\u00e0 CSR b\u1eb1ng openssl, x\u00e1c th\u1ef1c v\u1edbi CA, nh\u1eadn ch\u1ee9ng ch\u1ec9 v\u00e0 CA bundle, gh\u00e9p chain theo th\u1ee9 t\u1ef1 ch\u1ee9ng ch\u1ec9 t\u00ean mi\u1ec1n tr\u01b0\u1edbc ch\u1ee9ng ch\u1ec9 trung gian, khai b\u00e1o trong Nginx ho\u1eb7c Apache, c\u1ea5p l\u1ea1i trong k\u1ef3 v\u00ec th\u1eddi h\u1ea1n t\u1ed1i \u0111a 200 ng\u00e0y t\u1eeb 15\/03\/2026\" class=\"wp-image-131138\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/cai-ssl-tren-vps-tra-phi-v2.webp 1400w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/cai-ssl-tren-vps-tra-phi-v2-300x161.webp 300w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/cai-ssl-tren-vps-tra-phi-v2-1024x549.webp 1024w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/10\/cai-ssl-tren-vps-tra-phi-v2-768x411.webp 768w\" sizes=\"(max-width: 1400px) 100vw, 1400px\" \/><\/figure>\n\n\n\n<h3 id=\"B\u01b0\u1edbc_1:_T\u1ea1o_private_key_v\u00e0_CSR\">B\u01b0\u1edbc 1: T\u1ea1o private key v\u00e0 CSR<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mkdir -p \/etc\/ssl\/tenmien.vn &amp;&amp; cd \/etc\/ssl\/tenmien.vn\nsudo openssl req -new -newkey rsa:2048 -nodes \\\n  -keyout tenmien.vn.key -out tenmien.vn.csr\nsudo chmod 600 tenmien.vn.key<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">L\u1ec7nh h\u1ecfi th\u00f4ng tin qu\u1ed1c gia, t\u1ed5 ch\u1ee9c v\u00e0 <strong>Common Name<\/strong>: nh\u1eadp \u0111\u00fang t\u00ean mi\u1ec1n c\u1ea7n b\u1ea3o v\u1ec7. G\u1eedi file <code>.csr<\/code> cho nh\u00e0 cung c\u1ea5p ch\u1ee9ng ch\u1ec9; file <code>.key<\/code> gi\u1eef tr\u00ean VPS, kh\u00f4ng g\u1eedi cho ai. V\u1edbi ch\u1ee9ng ch\u1ec9 DV, CA ch\u1ec9 x\u00e1c th\u1ef1c quy\u1ec1n s\u1edf h\u1eefu t\u00ean mi\u1ec1n (qua email, b\u1ea3n ghi DNS ho\u1eb7c file); OV v\u00e0 EV c\u1ea7n th\u00eam h\u1ed3 s\u01a1 doanh nghi\u1ec7p.<\/p>\n\n\n\n<h3 id=\"B\u01b0\u1edbc_2:_Gh\u00e9p_chain_v\u00e0_khai_b\u00e1o\">B\u01b0\u1edbc 2: Gh\u00e9p chain v\u00e0 khai b\u00e1o<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Theo <a href=\"https:\/\/nginx.org\/en\/docs\/http\/configuring_https_servers.html\" rel=\"nofollow noopener\" target=\"_blank\">t\u00e0i li\u1ec7u Nginx<\/a>, n\u1ed1i ch\u1ee9ng ch\u1ec9 t\u00ean mi\u1ec1n v\u1edbi bundle c\u1ee7a CA th\u00e0nh m\u1ed9t file, ch\u1ee9ng ch\u1ec9 t\u00ean mi\u1ec1n \u0111\u1ee9ng tr\u01b0\u1edbc. Gh\u00e9p sai th\u1ee9 t\u1ef1, Nginx b\u00e1o l\u1ed7i <code>key values mismatch<\/code> v\u00e0 kh\u00f4ng kh\u1edfi \u0111\u1ed9ng.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Nginx: gh\u00e9p ch\u1ee9ng ch\u1ec9 t\u00ean mi\u1ec1n + bundle trung gian\nsudo sh -c 'cat tenmien.vn.crt ca-bundle.crt &gt; tenmien.vn.chained.crt'\n\n# Trong server block c\u1ed5ng 443\nlisten 443 ssl;\nserver_name tenmien.vn www.tenmien.vn;\nssl_certificate     \/etc\/ssl\/tenmien.vn\/tenmien.vn.chained.crt;\nssl_certificate_key \/etc\/ssl\/tenmien.vn\/tenmien.vn.key;\n\n# Ki\u1ec3m tra r\u1ed3i n\u1ea1p l\u1ea1i\nsudo nginx -t &amp;&amp; sudo systemctl reload nginx<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">V\u1edbi Apache 2.4.8 tr\u1edf l\u00ean, \u0111\u1eb7t ch\u1ee9ng ch\u1ec9 t\u00ean mi\u1ec1n v\u00e0 c\u00e1c ch\u1ee9ng ch\u1ec9 trung gian (theo th\u1ee9 t\u1ef1 t\u1eeb t\u00ean mi\u1ec1n l\u00ean g\u1ed1c) trong c\u00f9ng file khai b\u00e1o \u1edf <code>SSLCertificateFile<\/code>. Ch\u1ec9 th\u1ecb <code>SSLCertificateChainFile<\/code> \u0111\u00e3 l\u1ed7i th\u1eddi (<a href=\"https:\/\/httpd.apache.org\/docs\/2.4\/mod\/mod_ssl.html\" rel=\"nofollow noopener\" target=\"_blank\">t\u00e0i li\u1ec7u mod_ssl<\/a>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">T\u1eeb 15\/03\/2026, ch\u1ee9ng ch\u1ec9 SSL c\u00f4ng khai, k\u1ec3 c\u1ea3 ch\u1ee9ng ch\u1ec9 tr\u1ea3 ph\u00ed, ch\u1ec9 \u0111\u01b0\u1ee3c c\u1ea5p t\u1ed1i \u0111a 200 ng\u00e0y. M\u1ee9c n\u00e0y gi\u1ea3m c\u00f2n 100 ng\u00e0y t\u1eeb 15\/03\/2027 v\u00e0 47 ng\u00e0y t\u1eeb 15\/03\/2029, theo <a href=\"https:\/\/cabforum.org\/working-groups\/server\/baseline-requirements\/requirements\/\" rel=\"nofollow noopener\" target=\"_blank\">Baseline Requirements c\u1ee7a CA\/Browser Forum<\/a> (Ballot SC-081). G\u00f3i mua theo n\u0103m v\u00ec v\u1eady ph\u1ea3i c\u1ea5p l\u1ea1i v\u00e0 c\u00e0i l\u1ea1i ch\u1ee9ng ch\u1ec9 trong k\u1ef3. N\u1ebfu CA h\u1ed7 tr\u1ee3 ACME, h\u00e3y d\u00f9ng ACME \u0111\u1ec3 t\u1ef1 \u0111\u1ed9ng ho\u00e1 thay v\u00ec nh\u1eafc l\u1ecbch b\u1eb1ng tay.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tino c\u00f3 b\u00e1n <a href=\"https:\/\/tino.vn\/chung-chi-bao-mat-ssl\">ch\u1ee9ng ch\u1ec9 SSL Sectigo<\/a> (theo trang s\u1ea3n ph\u1ea9m ng\u00e0y 19\/10\/2026). N\u1ebfu ch\u01b0a r\u00f5 kh\u00e1c bi\u1ec7t gi\u1eefa c\u00e1c lo\u1ea1i ch\u1ee9ng ch\u1ec9, \u0111\u1ecdc <a href=\"https:\/\/tino.vn\/blog\/ssl-certificate-la-gi\/\">SSL certificate l\u00e0 g\u00ec<\/a>.<\/p>\n\n\n\n<h2 id=\"C\u00e0i_SSL_qua_control_panel_(aaPanel,_CyberPanel)\">C\u00e0i SSL qua control panel (aaPanel, CyberPanel)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">N\u1ebfu VPS \u0111\u00e3 c\u00e0i control panel, h\u00e3y c\u00e0i SSL ngay trong panel thay v\u00ec ch\u1ea1y Certbot ri\u00eang. Panel t\u1ef1 xin ch\u1ee9ng ch\u1ec9 Let&#8217;s Encrypt, s\u1eeda c\u1ea5u h\u00ecnh web server m\u00e0 n\u00f3 qu\u1ea3n l\u00fd v\u00e0 t\u1ef1 gia h\u1ea1n. Ch\u1ea1y th\u00eam Certbot tr\u00ean c\u00f9ng t\u00ean mi\u1ec1n d\u1ec5 l\u00e0m hai c\u00f4ng c\u1ee5 ghi \u0111\u00e8 c\u1ea5u h\u00ecnh c\u1ee7a nhau.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>aaPanel:<\/strong> xem <a href=\"https:\/\/tino.vn\/blog\/docs\/cach-cai-dat-aapanel-tren-vps\/\">c\u00e1ch c\u00e0i aaPanel tr\u00ean VPS<\/a> v\u00e0 <a href=\"https:\/\/tino.vn\/blog\/docs\/cach-cai-dat-ssl-mien-phi-tren-aapanel\/\">c\u00e1ch c\u00e0i SSL mi\u1ec5n ph\u00ed tr\u00ean aaPanel<\/a>. Sau khi c\u1ea5p ch\u1ee9ng ch\u1ec9, b\u1eadt t\u00f9y ch\u1ecdn \u00e9p chuy\u1ec3n sang HTTPS cho website.<\/li>\n\n\n<li><strong>CyberPanel:<\/strong> c\u1ea5p SSL cho t\u1eebng website trong m\u1ee5c qu\u1ea3n l\u00fd SSL, theo <a href=\"https:\/\/cyberpanel.net\/KnowledgeBase\/home\/cyberpanel-ssl-v2\/\" rel=\"nofollow noopener\" target=\"_blank\">h\u01b0\u1edbng d\u1eabn ch\u00ednh th\u1ee9c c\u1ee7a CyberPanel<\/a>. T\u00e0i li\u1ec7u n\u00e0y c\u0169ng n\u00eau \u0111i\u1ec1u ki\u1ec7n t\u00ean mi\u1ec1n ph\u1ea3i tr\u1ecf v\u1ec1 m\u00e1y ch\u1ee7 v\u00e0 c\u1ed5ng 80, 443 ph\u1ea3i m\u1edf.<\/li>\n<\/ul>\n\n\n\n<h2 id=\"L\u1ed7i_th\u01b0\u1eddng_g\u1eb7p_khi_c\u00e0i_SSL_tr\u00ean_VPS_v\u00e0_c\u00e1ch_x\u1eed_l\u00fd\">L\u1ed7i th\u01b0\u1eddng g\u1eb7p khi c\u00e0i SSL tr\u00ean VPS v\u00e0 c\u00e1ch x\u1eed l\u00fd<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ph\u1ea7n l\u1edbn l\u1ed7i khi c\u00e0i SSL tr\u00ean VPS r\u01a1i v\u00e0o ba nh\u00f3m: DNS ch\u01b0a tr\u1ecf \u0111\u00fang, c\u1ed5ng 80 b\u1ecb ch\u1eb7n khi\u1ebfn Let&#8217;s Encrypt kh\u00f4ng x\u00e1c th\u1ef1c \u0111\u01b0\u1ee3c. Nh\u00f3m th\u1ee9 ba l\u00e0 trang HTTPS c\u00f2n t\u1ea3i t\u00e0i nguy\u00ean qua HTTP (mixed content). \u0110\u1ecdc k\u1ef9 th\u00f4ng b\u00e1o l\u1ed7i c\u1ee7a Certbot, v\u00ec n\u00f3 th\u01b0\u1eddng n\u00eau t\u00ean mi\u1ec1n v\u00e0 ki\u1ec3u x\u00e1c th\u1ef1c b\u1ecb l\u1ed7i.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>D\u1ea5u hi\u1ec7u<\/th><th>Nguy\u00ean nh\u00e2n th\u01b0\u1eddng g\u1eb7p<\/th><th>C\u00e1ch x\u1eed l\u00fd<\/th><\/tr><\/thead><tbody><tr><td>Certbot b\u00e1o <code>NXDOMAIN<\/code> ho\u1eb7c <code>unauthorized<\/code>, x\u00e1c th\u1ef1c sai IP<\/td><td>T\u00ean mi\u1ec1n ch\u01b0a tr\u1ecf v\u1ec1 VPS, DNS ch\u01b0a c\u1eadp nh\u1eadt, ho\u1eb7c b\u1ea3n ghi AAAA tr\u1ecf sai<\/td><td>Ki\u1ec3m tra b\u1eb1ng <code>dig<\/code>; s\u1eeda ho\u1eb7c xo\u00e1 b\u1ea3n ghi AAAA sai; \u0111\u1ee3i TTL h\u1ebft r\u1ed3i ch\u1ea1y l\u1ea1i<\/td><\/tr><tr><td>Certbot b\u00e1o <code>Timeout during connect<\/code><\/td><td>C\u1ed5ng 80 b\u1ecb ch\u1eb7n b\u1edfi UFW, t\u01b0\u1eddng l\u1eeda c\u1ee7a nh\u00e0 cung c\u1ea5p, ho\u1eb7c web server kh\u00f4ng ch\u1ea1y<\/td><td>M\u1edf c\u1ed5ng 80 (<code>sudo ufw status<\/code>), ki\u1ec3m tra <code>sudo ss -tlnp | grep :80<\/code><\/td><\/tr><tr><td>Tr\u00ecnh duy\u1ec7t v\u1eabn b\u00e1o &#8220;kh\u00f4ng an to\u00e0n&#8221; d\u00f9 \u0111\u00e3 c\u00f3 ch\u1ee9ng ch\u1ec9<\/td><td>Mixed content: trang HTTPS t\u1ea3i \u1ea3nh, script qua <code>http:\/\/<\/code> (<a href=\"https:\/\/web.dev\/articles\/what-is-mixed-content\" rel=\"nofollow noopener\" target=\"_blank\">web.dev<\/a>)<\/td><td>\u0110\u1ed5i URL trong n\u1ed9i dung v\u00e0 c\u00e0i \u0111\u1eb7t website sang <code>https:\/\/<\/code>; v\u1edbi WordPress xem <a href=\"https:\/\/tino.vn\/blog\/chuyen-http-sang-https\/\">c\u00e1ch chuy\u1ec3n HTTP sang HTTPS<\/a><\/td><\/tr><tr><td>Ch\u1ee9ng ch\u1ec9 ch\u1ea1y tr\u00ean m\u00e1y t\u00ednh nh\u01b0ng l\u1ed7i tr\u00ean m\u1ed9t s\u1ed1 \u0111i\u1ec7n tho\u1ea1i, \u1ee9ng d\u1ee5ng<\/td><td>Thi\u1ebfu ch\u1ee9ng ch\u1ec9 trung gian (chain) khi c\u00e0i SSL tr\u1ea3 ph\u00ed<\/td><td>Gh\u00e9p l\u1ea1i file chain \u0111\u00fang th\u1ee9 t\u1ef1 nh\u01b0 ph\u1ea7n tr\u00ean<\/td><\/tr><tr><td>Website b\u00e1o ch\u1ee9ng ch\u1ec9 h\u1ebft h\u1ea1n<\/td><td>Gia h\u1ea1n t\u1ef1 \u0111\u1ed9ng l\u1ed7i sau khi \u0111\u1ed5i c\u1ea5u h\u00ecnh, DNS ho\u1eb7c ch\u1eb7n c\u1ed5ng 80<\/td><td>Ch\u1ea1y <code>sudo certbot renew --dry-run<\/code>, s\u1eeda l\u1ed7i \u0111\u01b0\u1ee3c b\u00e1o r\u1ed3i ch\u1ea1y <code>sudo certbot renew<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">C\u00e1c l\u1ed7i ph\u00eda tr\u00ecnh duy\u1ec7t kh\u00e1c: <a href=\"https:\/\/tino.vn\/blog\/loi-ssl-handshake-failed-la-gi\/\">l\u1ed7i SSL handshake failed<\/a>.<\/p>\n\n\n\n<h2 id=\"Khi_n\u00e0o_kh\u00f4ng_n\u00ean_t\u1ef1_c\u00e0i_Certbot_tr\u00ean_VPS?\">Khi n\u00e0o kh\u00f4ng n\u00ean t\u1ef1 c\u00e0i Certbot tr\u00ean VPS?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kh\u00f4ng ph\u1ea3i VPS n\u00e0o c\u0169ng n\u00ean t\u1ef1 c\u00e0i Certbot. N\u1ebfu m\u1ed9t th\u00e0nh ph\u1ea7n kh\u00e1c \u0111\u00e3 qu\u1ea3n l\u00fd ch\u1ee9ng ch\u1ec9 cho t\u00ean mi\u1ec1n, c\u00e0i th\u00eam Certbot ch\u1ec9 t\u1ea1o th\u00eam m\u1ed9t ngu\u1ed3n c\u1ea5u h\u00ecnh d\u1ec5 xung \u0111\u1ed9t. C\u0169ng c\u00f3 tr\u01b0\u1eddng h\u1ee3p ch\u1ee9ng ch\u1ec9 mi\u1ec5n ph\u00ed kh\u00f4ng \u0111\u00e1p \u1ee9ng y\u00eau c\u1ea7u c\u1ee7a b\u1ea1n.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>VPS \u0111\u00e3 c\u00f3 control panel qu\u1ea3n l\u00fd SSL<\/strong> (aaPanel, CyberPanel, DirectAdmin\u2026): d\u00f9ng ch\u1ee9c n\u0103ng SSL c\u1ee7a panel.<\/li>\n\n\n<li><strong>\u1ee8ng d\u1ee5ng ch\u1ea1y trong Docker sau m\u1ed9t reverse proxy t\u1ef1 c\u1ea5p ch\u1ee9ng ch\u1ec9<\/strong> (v\u00ed d\u1ee5 Caddy, Traefik): reverse proxy \u0111\u00e3 lo ph\u1ea7n SSL.<\/li>\n\n\n<li><strong>C\u1ea7n ch\u1ee9ng ch\u1ec9 OV\/EV ho\u1eb7c ch\u00ednh s\u00e1ch b\u1ea3o h\u00e0nh:<\/strong> Let&#8217;s Encrypt ch\u1ec9 c\u1ea5p ch\u1ee9ng ch\u1ec9 x\u00e1c th\u1ef1c t\u00ean mi\u1ec1n (DV); h\u00e3y d\u00f9ng ch\u1ee9ng ch\u1ec9 tr\u1ea3 ph\u00ed.<\/li>\n\n\n<li><strong>T\u00ean mi\u1ec1n \u0111\u1eb7t sau CDN c\u00f3 b\u1eadt proxy:<\/strong> tr\u00ecnh duy\u1ec7t nh\u1eadn ch\u1ee9ng ch\u1ec9 c\u1ee7a CDN, c\u00f2n ch\u1ee9ng ch\u1ec9 tr\u00ean VPS ch\u1ec9 d\u00f9ng cho \u0111o\u1ea1n CDN t\u1edbi VPS. Ch\u1ecdn ch\u1ebf \u0111\u1ed9 SSL c\u1ee7a CDN tr\u01b0\u1edbc khi c\u00e0i, \u0111\u1ec3 tr\u00e1nh l\u1ed7i chuy\u1ec3n h\u01b0\u1edbng v\u00f2ng l\u1eb7p.<\/li>\n<\/ul>\n\n\n\n<h2 id=\"C\u00e0i_SSL_tr\u00ean_VPS_t\u1ea1i_Tino\">C\u00e0i SSL tr\u00ean VPS t\u1ea1i Tino<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">C\u00e1c g\u00f3i <a href=\"https:\/\/tino.vn\/vps-gia-re\">VPS NVMe t\u1ea1i Tino<\/a> c\u00f3 to\u00e0n quy\u1ec1n root, n\u00ean b\u1ea1n c\u00e0i Certbot ho\u1eb7c ch\u1ee9ng ch\u1ec9 tr\u1ea3 ph\u00ed theo \u0111\u00fang c\u00e1c b\u01b0\u1edbc tr\u00ean. Theo trang s\u1ea3n ph\u1ea9m (19\/10\/2026), Tino h\u1ed7 tr\u1ee3 k\u1ef9 thu\u1eadt 24\/7 v\u00e0 t\u1eb7ng 1 th\u00e1ng s\u1eed d\u1ee5ng n\u1ebfu th\u1eddi gian ti\u1ebfp nh\u1eadn h\u1ed7 tr\u1ee3 k\u1ef9 thu\u1eadt qu\u00e1 5 ph\u00fat.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sau khi c\u00f3 HTTPS, b\u01b0\u1edbc ti\u1ebfp theo n\u00ean l\u00e0m l\u00e0 r\u00e0 <a href=\"https:\/\/tino.vn\/blog\/bao-mat-vps\/\">checklist b\u1ea3o m\u1eadt VPS<\/a>. N\u1ebfu m\u1edbi b\u1eaft \u0111\u1ea7u, \u0111\u1ecdc l\u1ea1i <a href=\"https:\/\/tino.vn\/blog\/vps-la-gi\/\">VPS l\u00e0 g\u00ec<\/a> \u0111\u1ec3 ch\u1ecdn c\u1ea5u h\u00ecnh ph\u00f9 h\u1ee3p.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/tino.vn\/vps-gia-re\">Xem c\u00e1c g\u00f3i VPS NVMe t\u1ea1i Tino<\/a><\/div>\n<\/div>\n\n\n\n<h2 id=\"C\u00e2u_h\u1ecfi_th\u01b0\u1eddng_g\u1eb7p_v\u1ec1_c\u00e0i_SSL_tr\u00ean_VPS\">C\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p v\u1ec1 c\u00e0i SSL tr\u00ean VPS<\/h2>\n\n\n\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"C\u00e0i_SSL_cho_VPS_c\u00f3_m\u1ea5t_ph\u00ed_kh\u00f4ng?\">C\u00e0i SSL cho VPS c\u00f3 m\u1ea5t ph\u00ed kh\u00f4ng?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p class=\"wp-block-paragraph\">Kh\u00f4ng b\u1eaft bu\u1ed9c. Ch\u1ee9ng ch\u1ec9 Let&#8217;s Encrypt mi\u1ec5n ph\u00ed v\u00e0 \u0111\u1ee7 \u0111\u1ec3 website ch\u1ea1y HTTPS. B\u1ea1n ch\u1ec9 tr\u1ea3 ph\u00ed khi c\u1ea7n ch\u1ee9ng ch\u1ec9 x\u00e1c th\u1ef1c t\u1ed5 ch\u1ee9c (OV\/EV), ch\u1ee9ng ch\u1ec9 c\u00f3 b\u1ea3o h\u00e0nh ho\u1eb7c c\u1ea7n h\u1ed7 tr\u1ee3 t\u1eeb nh\u00e0 cung c\u1ea5p ch\u1ee9ng ch\u1ec9.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"SSL_mi\u1ec5n_ph\u00ed_c\u00f3_b\u1ea3o_m\u1eadt_k\u00e9m_h\u01a1n_SSL_tr\u1ea3_ph\u00ed_kh\u00f4ng?\">SSL mi\u1ec5n ph\u00ed c\u00f3 b\u1ea3o m\u1eadt k\u00e9m h\u01a1n SSL tr\u1ea3 ph\u00ed kh\u00f4ng?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p class=\"wp-block-paragraph\">V\u1ec1 m\u00e3 ho\u00e1 \u0111\u01b0\u1eddng truy\u1ec1n th\u00ec kh\u00f4ng kh\u00e1c: c\u1ea3 hai \u0111\u1ec1u d\u00f9ng c\u00f9ng giao th\u1ee9c TLS. Kh\u00e1c bi\u1ec7t n\u1eb1m \u1edf m\u1ee9c x\u00e1c th\u1ef1c (DV ch\u1ec9 x\u00e1c th\u1ef1c t\u00ean mi\u1ec1n, OV\/EV x\u00e1c th\u1ef1c th\u00eam doanh nghi\u1ec7p), ch\u00ednh s\u00e1ch b\u1ea3o h\u00e0nh v\u00e0 k\u00eanh h\u1ed7 tr\u1ee3. Th\u1eddi h\u1ea1n t\u1ed1i \u0111a c\u1ee7a m\u1ecdi ch\u1ee9ng ch\u1ec9 c\u00f4ng khai \u0111\u1ec1u \u0111ang gi\u1ea3m d\u1ea7n, n\u00ean t\u1ef1 \u0111\u1ed9ng gia h\u1ea1n quan tr\u1ecdng v\u1edbi c\u1ea3 hai lo\u1ea1i.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"Let&#039;s_Encrypt_c\u00f3_c\u1ea5p_ch\u1ee9ng_ch\u1ec9_wildcard_(*.tenmien.vn)_kh\u00f4ng?\">Let&#039;s Encrypt c\u00f3 c\u1ea5p ch\u1ee9ng ch\u1ec9 wildcard (*.tenmien.vn) kh\u00f4ng?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p class=\"wp-block-paragraph\">C\u00f3, nh\u01b0ng ph\u1ea3i x\u00e1c th\u1ef1c b\u1eb1ng b\u1ea3n ghi DNS (DNS-01); c\u00e1ch x\u00e1c th\u1ef1c qua c\u1ed5ng 80 (HTTP-01) kh\u00f4ng c\u1ea5p \u0111\u01b0\u1ee3c wildcard (<a href=\"https:\/\/letsencrypt.org\/docs\/challenge-types\/\" rel=\"nofollow noopener\" target=\"_blank\">Let&#8217;s Encrypt<\/a>). V\u1edbi Certbot, b\u1ea1n d\u00f9ng plugin DNS c\u1ee7a nh\u00e0 cung c\u1ea5p DNS ho\u1eb7c ch\u1ebf \u0111\u1ed9 manual. Xem th\u00eam <a href=\"https:\/\/tino.vn\/blog\/wildcard-ssl-la-gi\/\">wildcard SSL l\u00e0 g\u00ec<\/a>.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"C\u00f3_c\u00e0i_SSL_cho_\u0111\u1ecba_ch\u1ec9_IP_c\u1ee7a_VPS_(kh\u00f4ng_c\u00f3_t\u00ean_mi\u1ec1n)_\u0111\u01b0\u1ee3c_kh\u00f4ng?\">C\u00f3 c\u00e0i SSL cho \u0111\u1ecba ch\u1ec9 IP c\u1ee7a VPS (kh\u00f4ng c\u00f3 t\u00ean mi\u1ec1n) \u0111\u01b0\u1ee3c kh\u00f4ng?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p class=\"wp-block-paragraph\">T\u1eeb 15\/01\/2026, Let&#8217;s Encrypt c\u1ea5p ch\u1ee9ng ch\u1ec9 cho \u0111\u1ecba ch\u1ec9 IP, nh\u01b0ng ch\u1ec9 \u1edf d\u1ea1ng ng\u1eafn h\u1ea1n kho\u1ea3ng 6 ng\u00e0y (160 gi\u1edd) v\u00e0 ph\u1ea3i ch\u1ecdn profile <code>shortlived<\/code> (<a href=\"https:\/\/letsencrypt.org\/2026\/01\/15\/6day-and-ip-general-availability\" rel=\"nofollow noopener\" target=\"_blank\">th\u00f4ng b\u00e1o c\u1ee7a Let&#8217;s Encrypt<\/a>). V\u1edbi website, d\u00f9ng t\u00ean mi\u1ec1n v\u1eabn \u0111\u01a1n gi\u1ea3n h\u01a1n.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"M\u1ed9t_VPS_c\u00e0i_\u0111\u01b0\u1ee3c_SSL_cho_nhi\u1ec1u_t\u00ean_mi\u1ec1n_kh\u00f4ng?\">M\u1ed9t VPS c\u00e0i \u0111\u01b0\u1ee3c SSL cho nhi\u1ec1u t\u00ean mi\u1ec1n kh\u00f4ng?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p class=\"wp-block-paragraph\">\u0110\u01b0\u1ee3c. M\u1ed7i t\u00ean mi\u1ec1n (ho\u1eb7c m\u1ed7i website) c\u00f3 server block ho\u1eb7c virtual host ri\u00eang, v\u00e0 b\u1ea1n ch\u1ea1y Certbot v\u1edbi c\u00e1c tham s\u1ed1 <code>-d<\/code> t\u01b0\u01a1ng \u1ee9ng. M\u1ed9t ch\u1ee9ng ch\u1ec9 c\u0169ng c\u00f3 th\u1ec3 ch\u1ee9a nhi\u1ec1u t\u00ean mi\u1ec1n n\u1ebfu b\u1ea1n li\u1ec7t k\u00ea t\u1ea5t c\u1ea3 trong c\u00f9ng m\u1ed9t l\u1ec7nh.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"Ch\u1ee9ng_ch\u1ec9_SSL_h\u1ebft_h\u1ea1n_th\u00ec_website_b\u1ecb_g\u00ec?\">Ch\u1ee9ng ch\u1ec9 SSL h\u1ebft h\u1ea1n th\u00ec website b\u1ecb g\u00ec?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p class=\"wp-block-paragraph\">Tr\u00ecnh duy\u1ec7t hi\u1ec7n c\u1ea3nh b\u00e1o b\u1ea3o m\u1eadt to\u00e0n trang v\u00e0 nhi\u1ec1u ng\u01b0\u1eddi d\u00f9ng s\u1ebd r\u1eddi \u0111i; \u1ee9ng d\u1ee5ng, API g\u1ecdi t\u1edbi website c\u00f3 th\u1ec3 ng\u1eebng k\u1ebft n\u1ed1i. Website v\u1eabn ch\u1ea1y, nh\u01b0ng h\u00e3y gia h\u1ea1n ngay b\u1eb1ng <code>sudo certbot renew<\/code> r\u1ed3i t\u00ecm nguy\u00ean nh\u00e2n gia h\u1ea1n t\u1ef1 \u0111\u1ed9ng b\u1ecb l\u1ed7i.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\n<script type=\"application\/ld+json\">\n\t{\n\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\"@type\": \"FAQPage\",\n\t\t\"mainEntity\": [\n\t\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"C\u00e0i SSL cho VPS c\u00f3 m\u1ea5t ph\u00ed kh\u00f4ng?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>Kh\u00f4ng b\u1eaft bu\u1ed9c. Ch\u1ee9ng ch\u1ec9 Let's Encrypt mi\u1ec5n ph\u00ed v\u00e0 \u0111\u1ee7 \u0111\u1ec3 website ch\u1ea1y HTTPS. B\u1ea1n ch\u1ec9 tr\u1ea3 ph\u00ed khi c\u1ea7n ch\u1ee9ng ch\u1ec9 x\u00e1c th\u1ef1c t\u1ed5 ch\u1ee9c (OV\/EV), ch\u1ee9ng ch\u1ec9 c\u00f3 b\u1ea3o h\u00e0nh ho\u1eb7c c\u1ea7n h\u1ed7 tr\u1ee3 t\u1eeb nh\u00e0 cung c\u1ea5p ch\u1ee9ng ch\u1ec9.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"SSL mi\u1ec5n ph\u00ed c\u00f3 b\u1ea3o m\u1eadt k\u00e9m h\u01a1n SSL tr\u1ea3 ph\u00ed kh\u00f4ng?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>V\u1ec1 m\u00e3 ho\u00e1 \u0111\u01b0\u1eddng truy\u1ec1n th\u00ec kh\u00f4ng kh\u00e1c: c\u1ea3 hai \u0111\u1ec1u d\u00f9ng c\u00f9ng giao th\u1ee9c TLS. Kh\u00e1c bi\u1ec7t n\u1eb1m \u1edf m\u1ee9c x\u00e1c th\u1ef1c (DV ch\u1ec9 x\u00e1c th\u1ef1c t\u00ean mi\u1ec1n, OV\/EV x\u00e1c th\u1ef1c th\u00eam doanh nghi\u1ec7p), ch\u00ednh s\u00e1ch b\u1ea3o h\u00e0nh v\u00e0 k\u00eanh h\u1ed7 tr\u1ee3. Th\u1eddi h\u1ea1n t\u1ed1i \u0111a c\u1ee7a m\u1ecdi ch\u1ee9ng ch\u1ec9 c\u00f4ng khai \u0111\u1ec1u \u0111ang gi\u1ea3m d\u1ea7n, n\u00ean t\u1ef1 \u0111\u1ed9ng gia h\u1ea1n quan tr\u1ecdng v\u1edbi c\u1ea3 hai lo\u1ea1i.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"Let's Encrypt c\u00f3 c\u1ea5p ch\u1ee9ng ch\u1ec9 wildcard (*.tenmien.vn) kh\u00f4ng?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>C\u00f3, nh\u01b0ng ph\u1ea3i x\u00e1c th\u1ef1c b\u1eb1ng b\u1ea3n ghi DNS (DNS-01); c\u00e1ch x\u00e1c th\u1ef1c qua c\u1ed5ng 80 (HTTP-01) kh\u00f4ng c\u1ea5p \u0111\u01b0\u1ee3c wildcard (<a>Let's Encrypt<\/a>). V\u1edbi Certbot, b\u1ea1n d\u00f9ng plugin DNS c\u1ee7a nh\u00e0 cung c\u1ea5p DNS ho\u1eb7c ch\u1ebf \u0111\u1ed9 manual. Xem th\u00eam <a>wildcard SSL l\u00e0 g\u00ec<\/a>.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"C\u00f3 c\u00e0i SSL cho \u0111\u1ecba ch\u1ec9 IP c\u1ee7a VPS (kh\u00f4ng c\u00f3 t\u00ean mi\u1ec1n) \u0111\u01b0\u1ee3c kh\u00f4ng?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>T\u1eeb 15\/01\/2026, Let's Encrypt c\u1ea5p ch\u1ee9ng ch\u1ec9 cho \u0111\u1ecba ch\u1ec9 IP, nh\u01b0ng ch\u1ec9 \u1edf d\u1ea1ng ng\u1eafn h\u1ea1n kho\u1ea3ng 6 ng\u00e0y (160 gi\u1edd) v\u00e0 ph\u1ea3i ch\u1ecdn profile shortlived (<a>th\u00f4ng b\u00e1o c\u1ee7a Let's Encrypt<\/a>). V\u1edbi website, d\u00f9ng t\u00ean mi\u1ec1n v\u1eabn \u0111\u01a1n gi\u1ea3n h\u01a1n.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"M\u1ed9t VPS c\u00e0i \u0111\u01b0\u1ee3c SSL cho nhi\u1ec1u t\u00ean mi\u1ec1n kh\u00f4ng?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>\u0110\u01b0\u1ee3c. M\u1ed7i t\u00ean mi\u1ec1n (ho\u1eb7c m\u1ed7i website) c\u00f3 server block ho\u1eb7c virtual host ri\u00eang, v\u00e0 b\u1ea1n ch\u1ea1y Certbot v\u1edbi c\u00e1c tham s\u1ed1 -d t\u01b0\u01a1ng \u1ee9ng. M\u1ed9t ch\u1ee9ng ch\u1ec9 c\u0169ng c\u00f3 th\u1ec3 ch\u1ee9a nhi\u1ec1u t\u00ean mi\u1ec1n n\u1ebfu b\u1ea1n li\u1ec7t k\u00ea t\u1ea5t c\u1ea3 trong c\u00f9ng m\u1ed9t l\u1ec7nh.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"Ch\u1ee9ng ch\u1ec9 SSL h\u1ebft h\u1ea1n th\u00ec website b\u1ecb g\u00ec?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>Tr\u00ecnh duy\u1ec7t hi\u1ec7n c\u1ea3nh b\u00e1o b\u1ea3o m\u1eadt to\u00e0n trang v\u00e0 nhi\u1ec1u ng\u01b0\u1eddi d\u00f9ng s\u1ebd r\u1eddi \u0111i; \u1ee9ng d\u1ee5ng, API g\u1ecdi t\u1edbi website c\u00f3 th\u1ec3 ng\u1eebng k\u1ebft n\u1ed1i. Website v\u1eabn ch\u1ea1y, nh\u01b0ng h\u00e3y gia h\u1ea1n ngay b\u1eb1ng sudo certbot renew r\u1ed3i t\u00ecm nguy\u00ean nh\u00e2n gia h\u1ea1n t\u1ef1 \u0111\u1ed9ng b\u1ecb l\u1ed7i.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t\t\t\t]\n\t}\n<\/script>\n\n\n\n<h2 id=\"Ngu\u1ed3n_tham_kh\u1ea3o\">Ngu\u1ed3n tham kh\u1ea3o<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/certbot.eff.org\/instructions?ws=nginx&#038;os=snap\" rel=\"nofollow noopener\" target=\"_blank\">Certbot: h\u01b0\u1edbng d\u1eabn cho Nginx tr\u00ean Linux (snap)<\/a> (truy c\u1eadp 19\/10\/2026)<\/li>\n\n\n<li><a href=\"https:\/\/certbot.eff.org\/instructions?ws=apache&#038;os=snap\" rel=\"nofollow noopener\" target=\"_blank\">Certbot: h\u01b0\u1edbng d\u1eabn cho Apache tr\u00ean Linux (snap)<\/a> (truy c\u1eadp 19\/10\/2026)<\/li>\n\n\n<li><a href=\"https:\/\/eff-certbot.readthedocs.io\/en\/stable\/using.html\" rel=\"nofollow noopener\" target=\"_blank\">Certbot User Guide<\/a> (truy c\u1eadp 19\/10\/2026)<\/li>\n\n\n<li><a href=\"https:\/\/letsencrypt.org\/docs\/faq\/\" rel=\"nofollow noopener\" target=\"_blank\">Let&#8217;s Encrypt: FAQ<\/a> (truy c\u1eadp 19\/10\/2026)<\/li>\n\n\n<li><a href=\"https:\/\/letsencrypt.org\/2025\/12\/02\/from-90-to-45\" rel=\"nofollow noopener\" target=\"_blank\">Let&#8217;s Encrypt: Decreasing Certificate Lifetimes to 45 Days<\/a> (truy c\u1eadp 19\/10\/2026)<\/li>\n\n\n<li><a href=\"https:\/\/letsencrypt.org\/docs\/challenge-types\/\" rel=\"nofollow noopener\" target=\"_blank\">Let&#8217;s Encrypt: Challenge Types<\/a> (truy c\u1eadp 19\/10\/2026)<\/li>\n\n\n<li><a href=\"https:\/\/letsencrypt.org\/2025\/06\/26\/expiration-notification-service-has-ended\/\" rel=\"nofollow noopener\" target=\"_blank\">Let&#8217;s Encrypt: Expiration Notification Service Has Ended<\/a> (truy c\u1eadp 19\/10\/2026)<\/li>\n\n\n<li><a href=\"https:\/\/cabforum.org\/working-groups\/server\/baseline-requirements\/requirements\/\" rel=\"nofollow noopener\" target=\"_blank\">CA\/Browser Forum: Baseline Requirements for TLS Server Certificates (m\u1ee5c 1.2.2, 6.3.2)<\/a> (truy c\u1eadp 19\/10\/2026)<\/li>\n\n\n<li><a href=\"https:\/\/cabforum.org\/2025\/04\/11\/ballot-sc081v3-introduce-schedule-of-reducing-validity-and-data-reuse-periods\/\" rel=\"nofollow noopener\" target=\"_blank\">CA\/Browser Forum: Ballot SC-081v3<\/a> (truy c\u1eadp 19\/10\/2026)<\/li>\n\n\n<li><a href=\"https:\/\/nginx.org\/en\/docs\/http\/configuring_https_servers.html\" rel=\"nofollow noopener\" target=\"_blank\">nginx: Configuring HTTPS servers<\/a> (truy c\u1eadp 19\/10\/2026)<\/li>\n\n\n<li><a href=\"https:\/\/httpd.apache.org\/docs\/2.4\/mod\/mod_ssl.html\" rel=\"nofollow noopener\" target=\"_blank\">Apache HTTP Server: mod_ssl<\/a> (truy c\u1eadp 19\/10\/2026)<\/li>\n\n\n<li><a href=\"https:\/\/web.dev\/articles\/what-is-mixed-content\" rel=\"nofollow noopener\" target=\"_blank\">web.dev: What is mixed content?<\/a> (truy c\u1eadp 19\/10\/2026)<\/li>\n\n\n<li><a href=\"https:\/\/cyberpanel.net\/KnowledgeBase\/home\/cyberpanel-ssl-v2\/\" rel=\"nofollow noopener\" target=\"_blank\">CyberPanel: How to Issue SSL in CyberPanel<\/a> (truy c\u1eadp 19\/10\/2026)<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>T\u00e1c gi\u1ea3: \u0110\u00f4ng T\u00f9ng \u00b7 Duy\u1ec7t k\u1ef9 thu\u1eadt: Nguy\u1ec5n V\u0103n Phong \u00b7 C\u1eadp nh\u1eadt: 20\/10\/2026 C\u00e1ch ph\u1ed5 bi\u1ebfn \u0111\u1ec3 c\u00e0i SSL tr\u00ean VPS l\u00e0 d\u00f9ng ch\u1ee9ng ch\u1ec9 mi\u1ec5n ph\u00ed c\u1ee7a Let&#8217;s Encrypt v\u1edbi c\u00f4ng c\u1ee5 Certbot. B\u1ea1n tr\u1ecf t\u00ean mi\u1ec1n v\u1ec1 IP c\u1ee7a VPS, m\u1edf c\u1ed5ng 80 v\u00e0 443, c\u00e0i Certbot r\u1ed3i ch\u1ea1y certbot &#8211;nginx [&hellip;]<\/p>\n","protected":false},"author":23,"featured_media":131099,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7727],"tags":[],"class_list":["post-131114","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-vps"],"_links":{"self":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/posts\/131114","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/users\/23"}],"replies":[{"embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/comments?post=131114"}],"version-history":[{"count":2,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/posts\/131114\/revisions"}],"predecessor-version":[{"id":131160,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/posts\/131114\/revisions\/131160"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/media\/131099"}],"wp:attachment":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/media?parent=131114"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/categories?post=131114"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/tags?post=131114"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}