在Linux系統中,OpenSSL是一種用於加密和解密數據的開源軟件包。它能夠支持多種加密算法和密鑰長度,廣泛地被應用於SSL/TLS協議、數字證書、VPN等各個領域。下面,我們就來一步步介紹Ubuntu安裝OpenSSL的詳細過程和配置指南。
一、安裝OpenSSL
1、首先,我們需要安裝OpenSSL。在Ubuntu 16.04及以上版本中,我們可以通過apt包管理器來進行安裝:
sudo apt update
sudo apt install openssl
2、安裝完成之後,我們可以通過以下命令來檢查OpenSSL的版本信息:
openssl version
這將輸出類似於以下的版本信息:
OpenSSL 1.0.2g 1 Mar 2016
我們需要檢查版本是否為最新版本,並進行相應的更新。
二、生成自簽名證書
如果我們在本地或局域網內使用OpenSSL進行加密通信,可以使用自簽名數字證書,來驗證通信的安全性。下面,我們就來生成一個自簽名證書。
1、首先,建立一個空文件夾,作為證書存放的目錄:
sudo mkdir /etc/nginx/ssl
cd /etc/nginx/ssl
2、生成秘鑰:
sudo openssl genrsa -des3 -out server.key 2048
3、生成證書請求:
sudo openssl req -new -key server.key -out server.csr
在此步驟中,你需要輸入證書相關的信息,例如國家、省份、城市等信息。這些信息將被包含在最終的證書中。
4、移除私鑰的口令:
sudo cp server.key server.key.org
sudo openssl rsa -in server.key.org -out server.key
5、生成自簽名證書:
sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
這樣,我們就生成了一個自簽名的服務器證書。
三、配置Nginx支持SSL
現在,我們已經獲得了證書,下一步就是設置Nginx支持HTTPS協議。
1、安裝Nginx:
sudo apt-get update
sudo apt-get install nginx
2、備份默認的Nginx配置文件:
sudo mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
3、創建新的Nginx配置文件,並將以下內容複製到文件中:
sudo nano /etc/nginx/nginx.conf
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 1024;
}
http {
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
ssl_protocols TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5:!ADH;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://localhost:3000;
}
}
}
注意替換以下內容:
example.com
是你的域名,需要替換成你自己的域名。proxy_pass
是代理轉發地址,需要替換成你自己的地址。
4、重啟Nginx服務:
sudo systemctl restart nginx
現在,我們已經成功地設置了Nginx支持HTTPS協議,並使用了自簽名證書。
四、使用Let’s Encrypt簽發證書
如果你並不想使用自簽名證書,而是希望使用公共機構簽發的可信證書,那麼可以考慮使用Let’s Encrypt。下面是使用Let’s Encrypt簽發證書的步驟:
1、安裝Certbot工具:
sudo apt-get update
sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install -y certbot
2、使用以下命令獲取並安裝證書:
sudo certbot certonly --standalone -d example.com -d www.example.com
該命令將使用單獨的插件來啟動一個Web服務器,並向Let’s Encrypt服務器發出請求。你需要將example.com
替換成你自己的域名。執行後,將生成新的證書文件,存放在/etc/letsencrypt/live/example.com
目錄下。
3、編輯Nginx配置文件:
sudo nano /etc/nginx/nginx.conf
4、將以下內容添加到server的配置塊內:
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
注意替換example.com
為你自己的域名。
5、重啟Nginx服務:
sudo systemctl restart nginx
現在,我們已經成功使用Let’s Encrypt簽發了證書,並配置了Nginx支持HTTPS協議。
總結
本文中,我們介紹了Ubuntu安裝OpenSSL的詳細過程和配置指南。我們學習了如何生成自簽名數字證書,並使用Nginx支持SSL協議和HTTPS協議。另外,我們也介紹了如何使用Let’s Encrypt簽發證書,使我們的HTTPS協議更加安全可靠。
原創文章,作者:UHGSX,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/318122.html