Thứ sáu, 08/06/2012 | 00:00 GMT+7

Cách tạo chứng chỉ SSL trên nginx cho CentOS 6


Giới thiệu về certificate tự ký

Chứng chỉ SSL là một cách để mã hóa thông tin của trang web và tạo kết nối an toàn hơn. Ngoài ra, certificate có thể hiển thị thông tin nhận dạng của server riêng ảo cho khách truy cập trang web. Tổ chức phát hành certificate có thể cấp certificate SSL để xác minh thông tin chi tiết của server trong khi certificate tự ký không có sự chứng thực của bên thứ ba.

Giới thiệu

Đảm bảo rằng nginx đã được cài đặt trên VPS của bạn. Nếu chưa, bạn có thể nhanh chóng cài đặt bằng 2 bước.

Cài đặt kho EPEL:

su -c 'rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm' 

Cài đặt nginx

yum install nginx

Bước một — Tạo folder cho certificate

Chứng chỉ SSL có 2 phần chính: chính certificate và public key . Để làm cho tất cả các file có liên quan dễ dàng truy cập, ta nên tạo một folder để lưu trữ chúng trong:

 sudo mkdir /etc/nginx/ssl

Ta sẽ thực hiện một số bước tiếp theo trong folder :

 cd /etc/nginx/ssl

Bước hai — Tạo khóa server và yêu cầu ký certificate

Bắt đầu bằng cách tạo khóa server riêng. Trong quá trình này, bạn cần nhập một passphrase (password bảo vệ) cụ thể. Nhớ ghi chú kỹ cụm từ này, nếu quên hoặc làm mất sẽ không truy cập được certificate .

sudo openssl genrsa -des3 -out server.key 1024

Theo dõi bằng cách tạo yêu cầu ký certificate :

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

Lệnh này sẽ nhắc terminal hiển thị danh sách các trường cần được điền vào.

Dòng quan trọng nhất là "Tên chung". Nhập domain chính thức của bạn tại đây hoặc nếu bạn chưa có, hãy nhập địa chỉ IP trang web . Để trống password thử thách và tên công ty tùy chọn.

You are about to be asked to 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]:US
State or Province Name (full name) [Some-State]:New York
Locality Name (eg, city) []:NYC
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Awesome Inc
Organizational Unit Name (eg, section) []:Dept of Merriment
Common Name (e.g. server FQDN or YOUR name) []:example.com                  
Email Address []:webmaster@awesomeinc.com

Bước ba — Xóa passphrase (password bảo vệ)

Ta gần như đã hoàn thành việc tạo certificate . Tuy nhiên, nó sẽ phục vụ ta để xóa passphrase (password bảo vệ) . Mặc dù có passphrase (password bảo vệ) tại chỗ cung cấp khả năng bảo mật cao hơn, nhưng vấn đề bắt đầu khi người ta cố gắng reload nginx. Trong trường hợp nginx gặp sự cố hoặc cần khởi động lại, bạn sẽ luôn phải nhập lại passphrase (password bảo vệ) của bạn để đưa toàn bộ web server trực tuyến trở lại.

Sử dụng lệnh này để xóa passphrase (password bảo vệ) :

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

Bước bốn— Ký certificate SSL của bạn

Chứng chỉ của bạn đã hoàn tất, và bạn chỉ cần ký vào nó. Lưu ý bạn có thể chỉ định thời gian certificate sẽ còn hiệu lực bằng cách thay đổi 365 thành số ngày bạn muốn. Như hiện tại, certificate này sẽ hết hạn sau một năm.

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

Đến đây bạn đã hoàn tất việc làm certificate của bạn .

Bước năm — Cài đặt certificate

Mở file cấu hình SSL:

 vi /etc/nginx/conf.d/ssl.conf

Bỏ chú thích trong phần dưới dòng Server HTTPS. Khớp cấu hình của bạn với thông tin bên dưới, thay thế example.com trong dòng "server_name" bằng domain hoặc địa chỉ IP của bạn. Nếu bạn chỉ muốn kiểm tra certificate của bạn , root mặc định ở đó sẽ hoạt động.

# HTTPS server

server {
    listen       443;
    server_name example.com;

    ssl on;
    ssl_certificate /etc/nginx/ssl/server.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key; 
}
Sau đó khởi động lại nginx:
 /etc/init.d/nginx restart

Truy cập https: // youraddress.

Bạn sẽ thấy certificate tự ký của bạn trên trang đó!

Tài nguyên

Bởi Etel Sverdlov

Tags:

Các tin liên quan

Cách thiết lập server ảo nginx (server block) trên CentOS 6
2012-06-07
Cách cài đặt Rails và nginx với Passenger trên Ubuntu
2012-06-01
Cách cài đặt nginx trên CentOS 6 với yum
2012-05-22