自簽憑證
有時,您可能需要使用自簽憑證來啟用監視特定技術,或取得內部 Maven 鏡映的存取權。
若要為不同的代理程式安裝提供自簽憑證,請參閱下列內容:
將自簽憑證新增至 Java TrustStore 檔案
複製 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 檔案。
- 若為 Linux®/Unix ® 上的 HotSpot JVM (Azul Zulu 1.8):
如果您想要對 Instana 主機代理程式使用自訂 Java TrustStore ,請在 使用 Instana 主機代理程式的自訂 Java TrustStore 區段中配置主機代理程式的 Java TrustStore ,然後將自訂 Java TrustStore 檔案儲存到安全的地方。
執行下列指令,將自簽憑證匯入至 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
使用下列一種方式來指定 Java TrustStore 參數:
使用單元檔案。
若要變更現行單元檔案,請執行下列指令:
systemctl edit instana-agent然後,會在系統的預設編輯器中開啟現行單元檔案。
找出下列幾行:
### 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的其他檔案作為下拉清單。在
/etc/systemd/system/instana-agent.service.d/目錄中建立副檔名為.conf的新檔案,例如/etc/systemd/system/instana-agent.service.d/environments.conf。將內容新增至檔案,如下所示:
[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的密碼。
執行下列指令,重新載入已變更的單元檔案:
systemctl daemon-reload執行下列指令,以重新啟動 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 檔案。