產生和導出憑證 - Linux - OpenSSL

VPN 閘道 點對站 (P2S) 連線可以設定為使用憑證驗證。 跟證書公鑰會上傳至 Azure,而且每個 VPN 用戶端都必須在本機安裝適當的憑證檔案,才能連線。 本文可協助您建立自我簽署跟證書,並使用 OpenSSL 產生用戶端憑證。 如需詳細資訊,請參閱點對站設定 - 憑證驗證

必要條件

若要使用本文,您必須有執行 OpenSSL 的電腦。

自我簽署跟證書

本節可協助您產生自我簽署跟證書。 產生憑證之後,您會匯出跟證書公鑰數據檔。

  1. 下列範例可協助您產生自我簽署跟證書。

    openssl genrsa -out caKey.pem 2048
    openssl req -x509 -new -nodes -key caKey.pem -subj "/CN=VPN CA" -days 3650 -out caCert.pem
    
  2. 以base64格式列印自我簽署跟證書公用數據。 這是 Azure 支援的格式。 將此憑證上傳至 Azure 作為 P2S 設定步驟的一部分。

    openssl x509 -in caCert.pem -outform der | base64 -w0 && echo
    

用戶端憑證

在本節中,您會產生用戶憑證(用戶端憑證)。 憑證檔案會在您執行命令的本機目錄中產生。 您可以在每部用戶端計算機上使用相同的用戶端憑證,或產生每個用戶端特有的憑證。 關鍵是客戶端憑證是由跟證書簽署。

  1. 若要產生客戶端憑證,請使用下列範例。

    export PASSWORD="password"
    export USERNAME=$(hostnamectl --static)
    
    # Generate a private key
    openssl genrsa -out "${USERNAME}Key.pem" 2048
    
    # Generate a CSR (Certificate Sign Request)
    openssl req -new -key "${USERNAME}Key.pem" -out "${USERNAME}Req.pem" -subj "/CN=${USERNAME}"
    
    # Sign the CSR using the CA certificate and CA key
    openssl x509 -req -days 365 -in "${USERNAME}Req.pem" -CA caCert.pem -CAkey caKey.pem -CAcreateserial -out "${USERNAME}Cert.pem" -extfile <(echo -e "subjectAltName=DNS:${USERNAME}\nextendedKeyUsage=clientAuth")
    
  2. 若要驗證客戶端憑證,請使用下列範例。

    openssl verify -CAfile caCert.pem caCert.pem "${USERNAME}Cert.pem"
    

下一步

若要繼續設定步驟,請參閱 點對站憑證驗證