溫馨提示×

ubuntu openssl證書怎么配置

小樊
41
2025-10-23 07:07:54
欄目: 云計算

Ubuntu下OpenSSL證書配置指南
OpenSSL是Ubuntu系統常用的開源SSL/TLS工具,可用于生成證書、配置加密通信。以下是從安裝到配置Web服務器的完整流程

1. 安裝OpenSSL

首先確保系統已安裝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)。

2. 生成證書與私鑰

證書的核心是私鑰(private key)和數字證書(certificate),以下是兩種常見場景的生成步驟:

場景1:生成自簽名證書(測試用)

自簽名證書無需第三方CA(證書頒發機構),適用于本地開發或內部環境:

  • 生成私鑰(2048位RSA,加密存儲):
    openssl genrsa -aes256 -out server.key 2048
    
    系統會提示輸入私鑰密碼(后續使用證書時需輸入,如需取消密碼可省略-aes256參數)。
  • 生成證書簽名請求(CSR)
    openssl req -new -key server.key -out server.csr
    
    按提示輸入信息(**Common Name(CN)**需與域名或服務器IP一致,如localhost192.168.1.100)。
  • 生成自簽名證書(有效期365天):
    openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
    
    最終生成server.key(私鑰)和server.crt(證書)。

場景2:生成CA簽名的證書(生產用)

若需權威CA認證(如Let’s Encrypt),需先生成CA根證書,再用其簽名服務器證書:

  • 生成CA私鑰與根證書
    openssl genrsa -out ca.key 4096
    openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
    
    -days 3650表示有效期10年,-x509表示直接生成自簽名CA證書)。
  • 生成服務器私鑰與CSR(同上)。
  • 用CA簽名服務器證書
    openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 365
    
    最終生成server.crt(CA簽名的服務器證書)。

3. 配置Web服務器使用證書

OpenSSL生成的證書需配置到Web服務器(如Apache、Nginx)才能啟用HTTPS。

Apache配置(以Ubuntu默認站點為例)

  • 啟用SSL模塊
    sudo a2enmod ssl
    
  • 編輯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>
    
  • 啟用站點并重啟Apache
    sudo a2ensite default-ssl
    sudo systemctl restart apache2
    
    若遇到端口沖突(如443已被占用),需檢查/etc/apache2/ports.conf。

Nginx配置(以默認站點為例)

  • 編輯站點配置文件(通常位于/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;
    }
    
  • 測試配置并重啟Nginx
    sudo nginx -t  # 檢查配置語法
    sudo systemctl restart nginx
    ```。
    
    
    

4. 驗證證書配置

  • 使用OpenSSL命令行測試
    替換yourdomain.com為服務器IP或域名,執行:
    openssl s_client -connect yourdomain.com:443
    
    若輸出中包含Verify return code: 0 (ok),說明證書配置成功。
  • 在線工具驗證
    通過SSL Labs輸入域名,檢測證書有效期、協議版本、加密套件等是否符合安全標準。

5. 安全注意事項

  • 私鑰保護:私鑰文件(如server.key、ca.key)需設置600權限,僅root用戶可訪問:
    sudo chmod 600 /etc/ssl/private/*.key
    
  • 定期更新:OpenSSL需定期升級以修復安全漏洞,執行:
    sudo apt update && sudo apt upgrade openssl
    
  • 證書有效期:自簽名證書有效期較短(如365天),生產環境建議使用CA簽發的長期證書(如Let’s Encrypt的90天有效期,可通過腳本自動續期)。

以上步驟覆蓋了Ubuntu下OpenSSL證書的生成、配置與驗證,可根據實際需求調整(如生成客戶端證書、配置雙向認證等)。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女