Ubuntu下OpenSSL證書配置指南
OpenSSL是Ubuntu系統常用的開源SSL/TLS工具,可用于生成證書、配置加密通信。以下是從安裝到配置Web服務器的完整流程:
首先確保系統已安裝OpenSSL(Ubuntu默認倉庫包含該工具):
sudo apt update
sudo apt install openssl
安裝完成后,通過以下命令驗證版本(確認安裝成功):
openssl version
輸出示例:OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)
。
證書的核心是私鑰(private key)和數字證書(certificate),以下是兩種常見場景的生成步驟:
自簽名證書無需第三方CA(證書頒發機構),適用于本地開發或內部環境:
openssl genrsa -aes256 -out server.key 2048
系統會提示輸入私鑰密碼(后續使用證書時需輸入,如需取消密碼可省略-aes256
參數)。openssl req -new -key server.key -out server.csr
按提示輸入信息(**Common Name(CN)**需與域名或服務器IP一致,如localhost
或192.168.1.100
)。openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
最終生成server.key
(私鑰)和server.crt
(證書)。若需權威CA認證(如Let’s Encrypt),需先生成CA根證書,再用其簽名服務器證書:
openssl genrsa -out ca.key 4096
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
(-days 3650
表示有效期10年,-x509
表示直接生成自簽名CA證書)。openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 365
最終生成server.crt
(CA簽名的服務器證書)。OpenSSL生成的證書需配置到Web服務器(如Apache、Nginx)才能啟用HTTPS。
sudo a2enmod ssl
/etc/apache2/sites-available/default-ssl.conf
):sudo nano /etc/apache2/sites-available/default-ssl.conf
修改以下內容(替換為實際路徑):<VirtualHost *:443>
ServerName yourdomain.com
SSLEngine on
SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key
# 其他配置(如DocumentRoot、Directory等)
</VirtualHost>
sudo a2ensite default-ssl
sudo systemctl restart apache2
若遇到端口沖突(如443已被占用),需檢查/etc/apache2/ports.conf
。/etc/nginx/sites-available/default
):sudo nano /etc/nginx/sites-available/default
添加或修改server
塊(替換為實際路徑):server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/ssl/certs/server.crt;
ssl_certificate_key /etc/ssl/private/server.key;
ssl_protocols TLSv1.2 TLSv1.3; # 推薦協議版本
ssl_ciphers HIGH:!aNULL:!MD5; # 推薦加密套件
root /var/www/html;
index index.html;
}
sudo nginx -t # 檢查配置語法
sudo systemctl restart nginx
```。
yourdomain.com
為服務器IP或域名,執行:openssl s_client -connect yourdomain.com:443
若輸出中包含Verify return code: 0 (ok)
,說明證書配置成功。server.key
、ca.key
)需設置600
權限,僅root用戶可訪問:sudo chmod 600 /etc/ssl/private/*.key
sudo apt update && sudo apt upgrade openssl
以上步驟覆蓋了Ubuntu下OpenSSL證書的生成、配置與驗證,可根據實際需求調整(如生成客戶端證書、配置雙向認證等)。