Linux系統中Nginx SSL證書安裝
本文將幫助您在Linux系統中生成自簽名SSL證書,允許您為Nginx配置SSL證書,用於將普通流量轉換為受保護的加密流量。使用此伺服器可以向客戶端傳送資料,而無需擔心資料會被外部人員攔截。
安裝指南
在開始之前,我們需要安裝一些軟體包。
透過終端登入伺服器並安裝。
# yum install mod_ssl
opensslResolving Dependencies
--> Running transaction check
---> Package mod_ssl.x86_64 1:2.2.15-47.el6.centos.1 will be updated
---> Package mod_ssl.x86_64 1:2.2.15-47.el6.centos.3 will be an update
--> Processing Dependency: httpd = 2.2.15-47.el6.centos.3 for package: 1:mod_ssl-2.2.15-47.el6.centos.3.x86_64
---> Package openssl.x86_64 0:1.0.1e-42.el6_7.1 will be updated
--> Processing Dependency: openssl = 1.0.1e-42.el6_7.1 for package: openssl-devel-1.0.1e-42.el6_7.1.x86_64
---> Package openssl.x86_64 0:1.0.1e-42.el6_7.4 will be an update
--> Running transaction check
---> Package httpd.x86_64 0:2.2.15-47.el6.centos.1 will be updated
---> Package httpd.x86_64 0:2.2.15-47.el6.centos.3 will be an update
--> Processing Dependency: httpd-tools = 2.2.15-47.el6.centos.3 for package: httpd-2.2.15-47.el6.centos.3.x86_64
---> Package openssl-devel.x86_64 0:1.0.1e-42.el6_7.1 will be updated
---> Package openssl-devel.x86_64 0:1.0.1e-42.el6_7.4 will be an update
--> Running transaction check
---> Package httpd-tools.x86_64 0:2.2.15-47.el6.centos.1 will be updated
---> Package httpd-tools.x86_64 0:2.2.15-47.el6.centos.3 will be an update
--> Finished Dependency Resolution
Dependencies Resolved
==========================================================================================================================================
Package Arch Version Repository Size
==========================================================================================================================================
Updating:
mod_ssl x86_64 1:2.2.15-47.el6.centos.3 updates 95 k
openssl x86_64 1.0.1e-42.el6_7.4 updates 1.5 M
Updating for dependencies:
httpd x86_64 2.2.15-47.el6.centos.3 updates 831 k
httpd-tools x86_64 2.2.15-47.el6.centos.3 updates 77 k
openssl-devel x86_64 1.0.1e-42.el6_7.4 updates 1.2 M
Transaction Summary
==========================================================================================================================================
Upgrade 5 Package(s)
Total download size: 3.7 M
Is this ok [y/N]: y
Downloading Packages:
(1/5): httpd-2.2.15-47.el6.centos.3.x86_64.rpm | 831 kB 00:00
(2/5): httpd-tools-2.2.15-47.el6.centos.3.x86_64.rpm | 77 kB 00:00
(3/5): mod_ssl-2.2.15-47.el6.centos.3.x86_64.rpm | 95 kB 00:00
(4/5): openssl-1.0.1e-42.el6_7.4.x86_64.rpm | 1.5 MB 00:00
(5/5): openssl-devel-1.0.1e-42.el6_7.4.x86_64.rpm | 1.2 MB 00:00
------------------------------------------------------------------------------------------------------------------------------------------
Total 529 kB/s | 3.7 MB 00:07
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Updating : openssl-1.0.1e-42.el6_7.4.x86_64 1/5
Updating : httpd-tools-2.2.15-47.el6.centos.3.x86_64 2/5
Updating : httpd-2.2.15-47.el6.centos.3.x86_64 3/5
Updating : 1:mod_ssl-2.2.15-47.el6.centos.3.x86_64 4/5
Updating :openssl-devel-1.0.1e-42.el6_7.4.x86_64 5/5
Updated:
mod_ssl.x86_64 1:2.2.15-47.el6.centos.3 openssl.x86_64 0:1.0.1e-42.el6_7.4
Dependency Updated:
httpd.x86_64 0:2.2.15-47.el6.centos.3 httpd-tools.x86_64 0:2.2.15-47.el6.centos.3 openssl-devel.x86_64 0:1.0.1e-42.el6_7.4
Complete!生成金鑰檔案
要生成SSL證書檔案,我們需要執行以下命令。
這將開始生成兩個檔案的過程:用於解密SSL證書的私鑰檔案和用於申請SSL證書的證書籤名請求 (CSR) 檔案。
當系統提示您輸入通用名稱(域名)時,請輸入您要保護站點的完全限定域名。如果您要為萬用字元SSL證書生成Nginx CSR,請確保您的通用名稱以星號開頭(例如,*.example.com)。
之後,系統將提示您輸入組織資訊,從地理資訊開始。可能已經設定了一些預設資訊。
# openssl req -new -newkey rsa:2048 -nodes -keyout your_domain_name.key -out your_domain_name.csr
Generating a 2048 bit RSA private key ..................+++ ........................+++ writing new private key to 'your_domain_name.key' ----- 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) [XX]:IN State or Province Name (full name) []:TELENGANA Locality Name (eg, city) [Default City]:HYDERABAD Organization Name (eg, company) [Default Company Ltd]:domain_name.com Organizational Unit Name (eg, section) []:HYDERABAD Common Name (eg, your name or your server's hostname) []:domain_name.com Email Address []:server@ domain_name.com Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:test An optional company name []:test Your .csr file will be created.
儲存(備份)生成的.key檔案,因為稍後在Nginx中安裝SSL證書時需要它。
將生成的證書檔案your_domain_name.key和your_domain_name.csr複製到/etc/ssl/domainname。
# mkdir -p /etc/ssl/domain_name # cp your_domain_name.* /etc/ssl/domain_name
編輯Nginx虛擬主機檔案
現在開啟您要保護的網站的Nginx虛擬主機檔案。如果您需要您的站點可以透過安全 (https) 和非安全 (http) 連線訪問,則需要為每種型別的連線建立一個伺服器模組。複製現有的非安全伺服器模組,並將其貼上到原始模組下方。然後新增以下粗體行:
# vi /etc/nginx/conf.d/virtual.conf
server {
listen 443;
ssl on;
ssl_certificate /etc/ssl/your_domain_name.pem; (or bundle.crt)
ssl_certificate_key /etc/ssl/your_domain_name.key;
server_name your.domain.com;
access_log /var/log/nginx/nginx.vhost.access.log;
error_log /var/log/nginx/nginx.vhost.error.log;
location / {
root /home/www/public_html/your.domain.com/public/;
index index.html;
}
}調整檔名以匹配您的證書檔案
ssl_certificate 應該是您的主證書與您在前面步驟中生成的中間證書組合而成(例如,your_domain_name.crt)。
ssl_certificate_key 應該是建立CSR時生成的金鑰檔案。
重啟Nginx
執行以下命令重啟Nginx以應用配置檔案中的更改。
# sudo /etc/init.d/nginx restart
重啟Nginx服務後,我們現在可以訪問該站點並檢查它是否已獲得SSL證書。
此外,我們可以看到https以綠色顯示,如下面的螢幕截圖所示。

如果我們想檢視證書的詳細資訊,請點選以綠色顯示的**https**,然後點選詳細資訊。

現在我們可以看到證書資訊以及Let's Encrypt Authority頒發的證書。
在上面的文章中,我們學習瞭如何從**Let's Encrypt**獲取SSL證書,這是一個數字簽名的SSL證書(免費提供),用作在Nginx Web伺服器上保護站點的證書。
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP