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伺服器上保護站點的證書。

更新於:2019年10月18日

258 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.