Giới thiệu
SSL (viết tắt của Lớp cổng bảo mật ) và người kế nhiệm của nó, TLS (viết tắt của Transport Layer Security ) là các giao thức mã hóa để bảo mật liên lạc qua Internet. Nó có thể được sử dụng để tạo kết nối an toàn đến một trang web.
Giới thiệu
Đảm bảo rằng Nginx và OpenSSL được cài đặt trên máy chủ của bạn. Trong bài viết này, chúng tôi sẽ trình bày quy trình bằng cách tạo chứng chỉ SSL tự ký.
Bước 1: Tạo thư mục cho chứng chỉ và khóa riêng
Chúng tôi sẽ tạo một thư mục (và nhập nó) bên trong / etc / nginx (giả sử thư mục đó là thư mục cấu hình của Nginx), bởi:
sudo mkdir /etc/nginx/ssl
cd /etc/nginx/ssl # we'll perform our next few steps in this dir
Bước 2: Tạo khóa riêng và CSR
Hãy bắt đầu bằng cách tạo khóa riêng của trang web. Trong ví dụ này, chúng tôi sẽ sử dụng khóa 4096 bit để bảo mật mạnh hơn. Lưu ý rằng 2048-bit cũng an toàn, nhưng KHÔNG SỬ DỤNG KHÓA RIÊNG 1024 BIT!
sudo openssl genrsa -out example.com.key 4096
Bây giờ, tạo một yêu cầu ký chứng chỉ (CSR) để ký chứng chỉ. Chúng tôi sẽ sử dụng SHA-2 512 bit. Lưu ý các -sha512
tùy chọn.
sudo openssl req -new -key example.com.key -out example.com.csr -sha512
Nó sẽ nhắc một danh sách các trường cần điền vào. Hãy chắc chắn rằng Common Name
nó được đặt thành tên miền của bạn! Ngoài ra, để lại A challenge password
và để An optional company name
trống.
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]:CA
Locality Name (eg, city) []:LosAngeles
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Example Inc
Organizational Unit Name (eg, section) []:Security
Common Name (e.g. server FQDN or YOUR name) []:*.example.com
Email Address []:[email protected]
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Bước 3: Ký chứng chỉ của bạn
Sắp xong! Bây giờ chúng ta chỉ cần ký nó. Đừng quên thay thế 365 (hết hạn sau 365 ngày) thành số ngày bạn muốn.
sudo openssl x509 -req -days 365 -in example.com.csr -signkey example.com.key -out example.com.crt -sha512
Bây giờ, chúng tôi đã hoàn thành việc làm một chứng chỉ tự ký.
Bước 4: Thiết lập
Mở tệp cấu hình SSL ví dụ của Nginx:
sudo nano /etc/nginx/conf.d/example_ssl.conf
Uncomment trong phần dưới dòng HTTPS Server . Khớp cấu hình của bạn với thông tin bên dưới, thay thế example.com
trong server_name
dòng bằng tên miền hoặc địa chỉ IP của bạn. Cũng thiết lập thư mục gốc của bạn.
# HTTPS server
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/example.com.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ecdh_curve secp384r1;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK:!RC4; # no RC4 and known insecure cipher
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
Sau đó khởi động lại Nginx.
service nginx restart
Bây giờ, hãy truy cập trang web của bạn với một https
địa chỉ ( https://your.address.tld
). Trình duyệt web của bạn sẽ hiển thị kết nối an toàn bằng chứng chỉ tự ký của bạn.