Cài đặt chứng chỉ số SSL trên Nginx

0
2142
(Last Updated On: Th4 1, 2014)

SSL Certificate thường được sử dụng trong việc mã hóa thông tin trao đổi giữa client và web server; không những thế SSL Certificate còn giúp client xác minh trang web đang kết nối tới là thật hay giả mạo. Trong hướng dẫn này SSL Certificate và Nginx web server được cài đặt trên nền Ubuntu Server 12.04.

Cài đặt SSL trên Nginx thì không khó, nhưng chưa chắc ai cài cũng thành công, bởi vì thường chỉ sai khi key tạo ra trên server để đưa lên trang mua chứng chỉ thực bị sai thế là không được công nhận chứng chỉ.

Cài đặt Nginx

Tiến hành update hệ điều hành:

sudo apt-get update
sudo apt-get upgrade

Cài đặt Nginx:

sudo apt-get install nginx

Tạo Server Key và Certificate Signing Request

Tạo Private Server Key:

sudo openssl genrsa -des3 -out server.key 1024

Lưu ý: Trong quá trình tạo Private Server Key, bạn sẽ được yêu cầu nhập vào Passphrase. Passphrase đóng vai trò như một password dùng để bảo vệ Private Server Key tránh khỏi các truy cập trái phép. Vì vậy bạn phải ghi nhớ Passphrase mình đã nhập.

Generating RSA private key, 1024 bit long modulus
.........................++++++
.............................................................................++++++
e is 65537 (0x10001)
Enter pass phrase for server.key:****
Verifying - Enter pass phrase for server.key:****

Tạo Certificate Signing Request:

sudo openssl req -new -key server.key -out server.csr

Lưu ý:

  • Trong quá trình tạo Certificate Signing Request bạn sẽ phải nhập vài thông số, trong đó quan trọng nhất là ”Common Name“; giá trị của thông số này chính là domain của trang web.
  • A challenge password” và “An optional company name” được để trống.
Country Name (2 letter code) [AU]:VN
State or Province Name (full name) [Some-State]:HCM
Locality Name (eg, city) []:HCM
Organization Name (eg, company) [Internet Widgits Pty Ltd]:CloudVis
Organizational Unit Name (eg, section) []:CloudVis
Common Name (e.g. server FQDN or YOUR name) []:cloudvis.test
Email Address []:admin@cloudvis.test

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

Gỡ bỏ Passphrase ra khỏi Private Server Key

Bạn sẽ phải nhập lại Passphare mỗi lần restart lại Nginx; để thuận tiện hơn trong quá trình sử dụng ta có thể gỡ bỏ Passphrase. Tuy nhiên như vậy đồng nghĩa với việc giảm mức độ bảo mật của hệ thống. Để gỡ bỏ Passphrase ta sử dụng các câu lệnh sau:

sudo cp server.key server.key.npp
sudo openssl rsa -in server.key.npp -out server.key

 Sign SSL Certificate

sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

 Cấu hình SSL Certificate hoạt động cùng Nginx

Tạo thư mục chứa Server Key và Server Certificate:

sudo mkdir /etc/nginx/ssl
sudo cp ./server.key ./server.crt /etc/nginx/ssl/

Tạo file cấu hình Nginx:

sudo  nano /etc/nginx/sites-available/default

Với đoạn:

server {
        listen 443;
        server_name cloudvis.test;

        root /usr/share/nginx/www;
        index index.html;

        ssl on;
        ssl_certificate /etc/nginx/ssl/server.crt;
        ssl_certificate_key /etc/nginx/ssl/server.key;
}

Kích hoạt file cấu hình vừa tạo trên bằng cách tạo soft link vào thư mục “/etc/nginx/sites-enabled/”:

sudo ln -s /etc/nginx/sites-available/cloudvis.test /etc/nginx/sites-enabled/

Khởi động lại Nginx:

sudo /etc/init.d/nginx restart

 

Thực hiện kết nối tới Nginx Server:

3-10-2013-9-57-14-PM.png (1090×419)

Client đã kết nối tới Nginx Server thành công bằng giao thức https với SSL Certificate vừa được tạo ở các bước trên.

Tham khảo Cloudvis

Bình luận