Cài đặt https-SSL (NameCheap) cho WordPress chạy NGINX

Cài đặt https-SSL (NameCheap) cho WordPress chạy NGINX
4.8 (96%) 5 votes

Trong mấy ngày qua chắc các bạn cũng thấy Thích Viết mới chuyển qua dùng SSL đúng không nào? Cái chứng chỉ số này có nhiều tác dụng phết nên tôi cũng quyết định đầu tư cho con Blog này 1 chút.

Ở trong bài viết ngày hôm nay tôi sẽ hướng dẫn các bạn cách để cài đặt https-SSL trên WordPress dùng Server Nginx. Có lẽ nhiều bạn sẽ cần cài cái này, hướng dẫn của tôi rất đơn giản và sẽ giúp các bạn cài đặt thành công.

cai-dat-https-ssl-namecheap-cho-wordpress-chuan-seo-tren-nginx

Lý do tôi cần cài đặt cái SSL này.

  • Nó bảo mật hơn này, mặc dù cũng chẳng ai thèm làm gì cái blog ghẻ của tôi. Nhưng nó sẽ là cần cho nhưng website luôn có sự truyền tải thông tin từ người dùng đến quản trị.
  • Theo lời anh google nói thì nó tốt hơn cho SEO, mặc dù con blog ghẻ này tôi cũng không SEO sốc gì cả.
  • Nhìn cái URL nó đẹp hơn, màu xanh xanh, tôi thích.
  • Giá gói SSL cơ bản cũng rẻ thôi, chỉ với 9$ = 209k việt nam đồng cho 1 năm tại NameCheap.
  • Tôi học cách để cài đặt nó trên Server nginx luôn, sắp tới còn cài nhiều mà.
  • Còn những lý do khác tạm thời chưa nghĩ ra, cơ bản là 5 lý do trên đủ để tôi cài đặt SSL rồi.

Vậy tôi gặp những khó khăn gì?

Có lẽ khó khăn duy nhất đó là phải tìm cách trỏ URL cũ sang URL có https, mà cái nginx server này tôi cũng không quá thạo, cũng may tôi đã khắc phục được nó.

Những thứ tôi cần chuẩn bị.

  • Một server chạy website config bằng nginx, ở đây tôi cài đặt LEMP server, các bạn có thể tự tìm hiểu LEMP server nó là cái gì nhé, khái niệm đầy ra trên google rồi. Nếu nhanh gọn nhất bạn nên dùng HọcVPS Script.
  • Một chứng chỉ SSL giá 9$ tại NameCheap, giá rẻ ý mà, đủ dùng thôi mua cao hơn cũng không để làm gì. Các bạn có thể truy cập vào đây để mua với giá 9$.
  • Một Email domain có thể nhận được email. Nên sử dụng là admin@domain.com, webmaster@domain.com nhé các bạn. Mục đích là để nhận email kích hoạt SSL sau này, ví dụ ở đây tôi dùng là admin@thichviet.net.

cai-dat-https-ssl-namecheap-cho-wordpress-chuan-seo-tren-nginx-1

cai-dat-https-ssl-namecheap-cho-wordpress-chuan-seo-tren-nginx-2

cai-dat-https-ssl-namecheap-cho-wordpress-chuan-seo-tren-nginx-3

Rồi, bên NameCheap thanh toán bằng Paypal nhé các bạn, sau khi mua xong tạm thời chúng ta để đó đã, bây giờ vào SSH của VPS đã nhé. Vào SSH các bạn có thể dùng Putty hoặc Bitvise 2 cái này dùng đều OK. Bạn nào chưa biết dùng thì có thể google tìm hiểu nhé, hoặc có thể inbox tôi sẽ hỗ trợ các bạn.

Phần cấu hình LEMP server các bạn phải làm xong trước và cài đặt wordpress của các bạn xong đã nha. Bạn nào tự cấu hình LEMP server thì tôi không biết, còn nếu dùng HọcVPS Script thì nó đã làm cho các bạn hết rồi.

1, Cài đặt SSL trên máy chủ (VPS) trước.

  • Đầu tiên các bạn cần tạo thư mục chứa chứng chỉ của SSL, trong thư mục SSL sẽ tạo thêm 2 thư mục nữa là privatecsr.

Tạo thư mục SSL bằng cách gõ lệnh sau.

Như vậy trong thư mục /etc/nginx/ sẽ xuất hiện một thư mục là ssl. Thực ra các bạn có thể tạo nó ở chỗ khác miễn là dễ nhớ. Tuy nhiên ở trong bài này tôi sẽ tạo vào đó.

Tiếp theo trong thư mục ssl mới tạo, các bạn sẽ phải tạo thêm 2 thư mục nữa như ở trên tôi đã nói, tiếp tục lần lượt gõ thêm 2 lệnh sau.

cai-dat-https-ssl-namecheap-cho-wordpress-chuan-seo-tren-nginx-4

Như vậy chúng ta đã tạo xong các thư mục cần thiết, tiếp theo chúng ta cần tạo Server Private Key trong thư mục private mà chúng ta đã tạo trước đó. Mỗi VPS chỉ cần một Server Private Key là đủ, tức là sau này khi các bạn cài đặt thêm SSL cho một tên miền khác thì không cần làm lại bước này nữa.

Các bạn gõ lệnh sau.

Tên của Server Private Key là gì cũng được miễn là bạn có .key ở cuối cùng, ở đây tôi tạo là cuongpjh.com.key sau đó nhấn Enter để tạo. Bạn có thể thay đổi một cái tên khác cho dễ nhớ và hợp phong cách hơn.

Kết quả như sau là thành công.

cai-dat-https-ssl-namecheap-cho-wordpress-chuan-seo-tren-nginx-5

  • Tạo CSR key, bước này khá quan trọng này.

Chúng ta cần một file .CRT để xác minh SSL sau này cho máy chủ, để có được file này chúng ta lại cần phải tạo một file .CSR trên máy chủ để xác minh trước rồi mới được cấp cái file .CRT của nợ kia.

Đối với cái file .CSR này mỗi tên miền lại cần một cái riêng, điều đó chứng tỏ nếu như bạn muốn cài đặt SSL trên một tên miền khác bạn sẽ phải làm lại bước này, và nếu bạn chuyển máy chủ bạn cũng phải làm lại.

Các bạn gõ lệnh sau, nhớ thay tên file .key cho phù hợp với file bạn đã tạo ở bước trên.

Bây giờ các bạn nhập thông tin sao cho cẩn thận, nhớ tắt Unikey đi để tránh sai.

Country Name (2 letter code) [XX]: Mã quốc gia, đối với Việt Nam là VN.
State or Province Name (full name) []: Tên tỉnh thành
Locality Name (eg, city) [Default City]: Tên thành phố/quận huyện
Organization Name (eg, company) [Default Company Ltd]: Tên công ty, doanh nghiệp
Organizational Unit Name (eg, section) []: Lĩnh vực hoạt động
Common Name (eg, your name or your server’s hostname) []: Domain của website cần chứng thực (vd: thichviet.net, không chứa www)
Email Address []: Địa chỉ Email có thể dùng để nhận email kích hoạt sau này. admin@thichviet.net chẳng hạn.

Với 2 cái còn lại yêu cầu mật khẩu bạn cứ Enter cho qua không cần điền phần này đâu nhé.

Please enter the following ‘extra’ attributes to be sent with your certificate request
A challenge password []:
An optional company name []:

Nếu bạn điền mọi thứ OK nó sẽ không có thông báo gì cả. Như tôi điền xong là sẽ như thế này.

cai-dat-https-ssl-namecheap-cho-wordpress-chuan-seo-tren-nginx-6

Tiếp theo các bạn gõ tiếp lệnh sau để tạo thành file .CSR chính thức.

Nhớ thay đổi thư mục và tên file sao cho đúng và đồng bộ như đã khai trước đó. Thành công nó sẽ ra như hình.

cai-dat-https-ssl-namecheap-cho-wordpress-chuan-seo-tren-nginx-7

Khi nó hiện ra như hình rồi thì hãy sao chép đoạn mã đó lại, bình tĩnh và chúng ta chuyển sang bước kích hoạt SSL tại NameCheap mà chúng ta đã mua trước đó.

2, Kích hoạt SSL trên NameCheap.

cai-dat-https-ssl-namecheap-cho-wordpress-chuan-seo-tren-nginx-8

Chọn Active để bắt đầu kích họat SSL. Nó sẽ hiện ra một form để bạn nhập đoạn mã hóa đã sao chép ban nãy lên, nhớ chú ý mục Primary domain có đúng là domain bạn cần cài SSL không, và do đây là server chạy Nginx cho nên bạn sẽ phải chọn như trong hình.

cai-dat-https-ssl-namecheap-cho-wordpress-chuan-seo-tren-nginx-9

Sau khi nhấn Submit các bạn cần xác minh thông tin lại một lần nữa.

cai-dat-https-ssl-namecheap-cho-wordpress-chuan-seo-tren-nginx-10

Nhấn Next và chọn hình thức xác minh, bạn nhớ chọn hình thức là Email, sau đó chọn email tương ứng như các bạn đã chuẩn bị. Ở đây tôi chuẩn bị email là admin@thichviet.net cho nên tôi sẽ chọn cái đó.

cai-dat-https-ssl-namecheap-cho-wordpress-chuan-seo-tren-nginx-11

Các bạn sẽ phải điền thông tin lại một lần nữa, điền vắn tắt thôi không cần quá kỹ càng, giống với những gì chúng ta đã khai báo lúc tạo file .CSR trên VPS là được, ở đây tôi điền như sau.

cai-dat-https-ssl-namecheap-cho-wordpress-chuan-seo-tren-nginx-12 cai-dat-https-ssl-namecheap-cho-wordpress-chuan-seo-tren-nginx-13

Và hiện ra như thế này là thành công rồi.

cai-dat-https-ssl-namecheap-cho-wordpress-chuan-seo-tren-nginx-14

3, Cài đặt để chạy ổn định, giữ lại được URL cũ.

  • Các bạn quay lại Email để check mã xác minh tiếp theo của SSL.

cai-dat-https-ssl-namecheap-cho-wordpress-chuan-seo-tren-nginx-15

cai-dat-https-ssl-namecheap-cho-wordpress-chuan-seo-tren-nginx-16

Kích hoạt thành công các bạn sẽ nhận được email chứa file .CRT

cai-dat-https-ssl-namecheap-cho-wordpress-chuan-seo-tren-nginx-17 cai-dat-https-ssl-namecheap-cho-wordpress-chuan-seo-tren-nginx-18

Các bạn tải file .ZIP được đính kèm trong email này, giải nén ra sẽ có 2 file như hình ảnh bên trên, sử dụng một công cụ soạn thảo nào đó như Notepad ++ chẳng hạn, bật file .CRT và file bundle lên. Sao chép nội dung trong file bundle chèn vào bên dưới nội dung trong file .CRT lưu lại rồi tải cả 2 file lên thư mục CSR.

Để có thể chuyển hướng các URL cũ sang URL có https chúng ta sẽ config tên miền khác với cách config chính thống một chút. Các bạn mở file config domain lên ở thư mục sau (đối với những bạn cài họcvps script).

Ở đây tôi dùng domain thichviet.net nên file config của tôi sẽ là.

Các bạn cần chỉnh lại biến server của nó như sau, nhớ thay đổi domain của bạn cho chuẩn xác.

Như vậy là đã xong phần điều hướng 301 cho URL cũ chạy sang URL mới. Các bạn chỉ việc đổi HTTP thành HTTPS trong cài đặt ở WordPress nữa là xong.

Cấu hình nâng cao cho SSL của bạn.

Điều hướng xong việc của chúng ta là cấu hình cho SSL chạy ổn định và tốt. Đặc biệt là phải được điểm A+ trên công cụ thử nghiệm.

Các bạn sẽ cấu hình thêm trên config domain của các bạn như sau.

Các bạn cấu hình y như trên, tuy nhiên các bạn phải thay thư mục đường dẫn file tương ứng với thư mục có trên VPS của các bạn.

Ngoài ra các bạn cần phải tạo thêm file ssl_dhparam như sau:

Các bạn gõ cd<dấu cách>thư mục lưu file dhparam. Ví dụ ở đây tôi sử dụng là cd /etc/nginx/ssl/private/.

Sau khi đã nhận thư mục cần lưu rồi chúng ta sẽ tiến hành tạo file dhparam.pem

Các bạn gõ lệnh openssl dhparam -out dhparam.pem 2048 bạn có thể thay bằng 1024 hoặc 4096 nhưng theo tôi 2048 là đủ dùng. File sẽ được tạo trong 1 lúc lâu nên sau khi gõ lệnh bạn nên chờ để SSH chạy cho xong.

Vậy tổng quan cả cái file config domain sẽ như sau:

Bạn nhớ tham khảo và thay đổi đường dẫn cho chuẩn xác phù hợp với domain của bạn, file config được tạo từ họcvps script.

Check lại cấu hình SSL của mình xem đã được A+ chưa ở đây.

Sau đó hay lưu lại và khởi động lại Nginx với lệnh sau.

Nginx khởi động ổn không báo lỗi là được.

cai-dat-https-ssl-namecheap-cho-wordpress-chuan-seo-tren-nginx-19

  • Các bạn vào quản trị của WordPress và cài thêm plugin WordPress HTTPS (SSL) và cấu hình như hình dưới đây, lưu lại là xong, nhớ xóa cache nếu có.

cai-dat-https-ssl-namecheap-cho-wordpress-chuan-seo-tren-nginx-20

Giờ quay trở lại website của các bạn và vào thử các URL xem nào, https xanh chói lóa. Như vậy là đã xong rồi đấy. Nhưng nhớ là phải cập nhật lại website trong Webmaster tools nữa nhé.

Lưu ý: Nếu bạn sử dụng DNS trung gian là CloudFlare thì bạn phải chỉnh thêm một bước nữa như hình dưới đây để tránh gặp lỗi khi chạy https.

cai-dat-https-ssl-namecheap-cho-wordpress-chuan-seo-tren-nginx-21

Update – xác minh lại SSL nếu chuyển VPS.

Đây là phần bổ xung sau khi tôi quyết định chuyển thích viết sang một máy chủ mới. Nếu bạn muốn chuyển website đi thì chúng ta cần xin cấp lại chứng chỉ SSL (Lưu ý phải sử dụng Email đã dùng đăng ký SSL lúc trước, đáng tiếc là email không thể thay đổi). Các bạn làm như sau.

  • Đầu tiên hãy backup toàn bộ website như hướng dẫn tại bài viết này. Sau đó chuyển sang server mới cũng cấu hình Nginx tương tự như server cũ, làm lại Bước 1 trong bài hướng dẫn này để lấy được file xác minh từ server.
  • Sau khi làm xong các bạn truy cập vào quản lý SSL trong NameCheap chọn đúng tên miền các bạn cần chuyển và xin cấp lại như sau.

xin-cap-lai-ssl

xin-cap-lai-ssl-1

  • Các bạn lấy file mã hóa ở server mới, thứ mà chúng ta đã tạo lại giống như phần 1 của bài viết này và làm các bước như trong hình dưới đấy.

xin-cap-lai-ssl-2 xin-cap-lai-ssl-3 xin-cap-lai-ssl-4 xin-cap-lai-ssl-5 xin-cap-lai-ssl-6 xin-cap-lai-ssl-7 xin-cap-lai-ssl-8 xin-cap-lai-ssl-9

Chúng ta sẽ được cấp lại file .CRT và các bạn chỉ việc upload lên thư mục SSL ở server mới, trỏ tên miền về IP server mới sau đó cấu hình lại Nginx cho tên miền đó như ở bước 3 của bài viết, khởi động lại nginx vậy là xong.

Chúc các bạn thành công.

Mọi câu hỏi hoặc các vấn đề liên quan xin gửi về mục Liên Hệ.
2017 Thích Viết. Quản trị máy chủ HọcVPS Script. Máy chủ lưu trữ tại Hosting Việt.