自簽憑證

有時,您可能需要使用自簽憑證來啟用監視特定技術,或取得內部 Maven 鏡映的存取權。

若要為不同的代理程式安裝提供自簽憑證,請參閱下列內容:

將自簽憑證新增至 Java TrustStore 檔案

  1. 複製 Java TrustStore 檔案,並將它儲存在安全的地方。

    • 如果您使用 Instana 主機代理程式隨附之 JVM 的預設 Java TrustStore ,請在代理程式安裝所在的主機上找到 Java TrustStore 檔案,然後將它儲存在代理程式安裝路徑之外的安全位置。

      • 若為 Linux®/Unix ® 上的 HotSpot JVM (Azul Zulu 1.8): /opt/instana/agent/jvm/jre/lib/security/cacerts
      • 若為 Linux/Unix 上的 J9 JVM (IBM J9 11): /opt/instana/agent/jvm/lib/security/cacerts

      或者,您可以從儲存器映像檔解壓縮 Java TrustStore 檔,如下所示:

      • 若為 HotSpot (Azul Zulu 1.8) 型 Instana 代理程式,請執行下列指令:

        id=$(docker create icr.io/instana/agent:latest); docker cp $id:/opt/instana/agent/jvm/jre/lib/security/cacerts /<local_path>/cacerts && docker rm -v $id
        

        將指令中的 <local_path> 取代為本端主機路徑,以儲存預設 Java TrustStore 檔案。

      • 若為 J9 (IBM J9 11) 型 Instana 代理程式,請執行下列指令:

        id=$(docker create icr.io/instana/agent:latest-j9); docker cp $id:/opt/instana/agent/jvm/lib/security/cacerts /<local_path>/cacerts && docker rm -v $id
        

        將指令中的 <local_path> 取代為本端主機路徑,以儲存預設 Java TrustStore 檔案。

    • 如果您想要對 Instana 主機代理程式使用自訂 Java TrustStore ,請在 使用 Instana 主機代理程式的自訂 Java TrustStore 區段中配置主機代理程式的 Java TrustStore ,然後將自訂 Java TrustStore 檔案儲存到安全的地方。

  2. 執行下列指令,將自簽憑證匯入至 Java TrustStore 檔案:

    keytool -import -alias <provided_alias> -keystore <java_truststore> -storepass <password> -file <path_to_self-signed_certificate>
    
    • 金鑰儲存庫項目由別名識別。 將 <provided_alias> 取代為您選擇的值。
    • <java_truststore> 取代為您在最後一個步驟中複製的 Java TrustStore 檔案的絕對路徑。
    • <password> 取代為您選擇的密碼。 預設 Java TrustStore 檔的預設密碼是 changeit
    • <path_to_self-signed_certificate> 取代為您要匯入之自簽憑證的絕對路徑。

對 Instana 代理程式使用自訂 Java TrustStore 檔案

如果您不想對 Instana 代理程式使用 JVM 的預設 Java TrustStore ,則可以使用自訂 Java TrustStore。

Linux 主機

如果 Instana 代理程式安裝在 Linux上,請使用下列其中一種方式:

systemd

  1. 使用下列一種方式來指定 Java TrustStore 參數:

    • 使用單元檔案。

      1. 若要變更現行單元檔案,請執行下列指令:

        systemctl edit instana-agent
        

        然後,會在系統的預設編輯器中開啟現行單元檔案。

      2. 找出下列幾行:

        ### Anything between here and the comment below will become the new contents of the file
        
        ### Lines below this comment will be discarded
        

        將內容新增至檔案,如下所示:

        [Service]
        Environment="JAVA_OPTS=-Djavax.net.ssl.trustStore=<path_to_java_truststore> -Djavax.net.ssl.trustStoreType=jks"
        
        • <path_to_java_truststore> 取代為自訂 Java TrustStore 檔案的路徑。
        • 您不需要指定用來讀取自訂 Java TrustStore的密碼。
    • 使用 /etc/systemd/system/instana-agent.service.d/ 目錄中副檔名為 .conf 的其他檔案作為下拉清單。

      1. /etc/systemd/system/instana-agent.service.d/ 目錄中建立副檔名為 .conf的新檔案,例如 /etc/systemd/system/instana-agent.service.d/environments.conf

      2. 將內容新增至檔案,如下所示:

        [Service]
        Environment="JAVA_OPTS=-Djavax.net.ssl.trustStore=<path_to_java_truststore> -Djavax.net.ssl.trustStoreType=jks"
        
        • <path_to_java_truststore> 取代為自訂 Java TrustStore 檔案的路徑。
        • 您不需要指定用來讀取自訂 Java TrustStore的密碼。
  2. 執行下列指令,重新載入已變更的單元檔案:

    systemctl daemon-reload
    
  3. 執行下列指令,以重新啟動 Instana 主機代理程式,讓變更運作:

    systemctl restart instana-agent
    

環境變數

若要對主機代理程式使用自訂 Java TrustStore ,您也可以如下配置環境變數:

附註: 如果您想要直接啟動 Instana 主機代理程式,請確保在啟動主機代理程式之前已新增下列環境變數。

JAVA_OPTS="-Djavax.net.ssl.trustStore=<path_to_java_truststore> -Djavax.net.ssl.trustStoreType=jks"
  • 您需要將 <path_to_java_truststore> 取代為自訂 Java TrustStore 檔案的路徑。
  • 您不需要指定用來讀取自訂 Java TrustStore的密碼。

疑難排解

Instana 代理程式日誌中發生 SSLException

您可能會在 Instana 代理程式日誌中看到下列異常狀況:

Caused by: javax.net.ssl.SSLException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty

此異常狀況指出您已啟動 Instana 代理程式,但沒有有效的 Java TrustStore 檔案。

若要解決此問題,您需要驗證變更,並確定 Instana 代理程式可以存取所提供的 Java TrustStore 檔案。