1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【小ネタ】OCI CLI で `SSLException` が出た時の対処法

Posted at

001samune.jpg

動作環境

項目名
OS 64bit版 Windows 11 Pro
PowerShell 5.1.26100.6899
OCI CLI 3.69.0

はじめに

OCI CLI 実行時に以下のような SSLException が出た場合の対処方法をまとめます。

PS C:\Users\hogehoge> oci iam region list --profile test --auth security_token
SSLException:
{
    "client_version": "Oracle-PythonCLI/3.69.0",
    "logging_tips": "Please run the OCI CLI command using --debug flag to find more debug information.",
    "message": "It looks like you are missing some additional certificates for operation. run 'curl request_endpoint' to make sure you are able to call endpoint using curl.",
    "request_endpoint": null,
    "target_service": "CLI",
    "timestamp": "2025-11-05T05:35:28.742076",
    "troubleshooting_tips": "If you have a root certificate, either use --cert-bundle <path_to_cert_bundle_file> with CLI command or set REQUESTS_CA_BUNDLE env variable. i.e export REQUESTS_CA_BUNDLE=path_to_cert_bundle_file on POSIX-compliant bash-like shell terminal. See [https://docs.oracle.com/iaas/Content/API/SDKDocs/clitroubleshooting.htm] for more information about resolving this error. If you are unable to resolve this issue, run this CLI command with --debug option and contact Oracle support and provide them the full error message."
}

ZscalerやNetskopeなどのクラウド型Proxyを利用している企業環境だと発生する可能性があります。
このようなエラーが発生した場合、OCI CLIから該当の証明書を認識できるように設定する必要があります。


対処方法一覧

対処方法としては大きく 3 つあります。

対処法 メリット デメリット
コマンドオプションに --cert-bundle 保存した証明書のパス を追加 特になし 毎回オプションを指定すること
oci_cli_rcファイルに OCI_CLI_CERT_BUNDLE=保存した証明書のパス を追加 プロファイルごとに証明書の設定が可能 プロファイルが複数ある場合に同様の設定追加が必要
環境変数 OCI_CLI_CERT_BUNDLE=保存した証明書のパス を追加 環境全体に適用されるため、oci_cli_rcファイルへの個別設定が不要 証明書変更時に環境変数の修正と読み込みが必要

実践

今回は、環境変数を利用する方法を実践します。また、エクスポートした証明書をpem形式のファイルで管理するようにします。そうすることで、仮に証明書が追加になった場合でもpemファイルに追記していくことでデメリットである環境変数のパス設定を変更しなくてもすみます。

証明書エクスポート

まずは該当の証明書をローカルPCにエクスポートします。

  1. Windows環境の方は、デスクトップの検索タブから「証明書」と入力すると「ユーザー証明書の管理」がヒットするので開きます。
  2. 信頼されたルート証明書機関」の中から該当の証明書を「右クリック」→「すべてのタスク」→「エクスポート」で任意のフォルダにエクスポートします。

エクスポート形式は「Base 64 encoded X.509(.CER)(S)」

画像2.png

pemファイル作成

続いてpemファイルを作成します。ファイル名および作成場所は任意で構いません。
作成したpemファイルに、先ほどエクスポートしたcerファイルをテキストで開き、中身すべてをコピーして貼り付けます。

XXX.pem
-----BEGIN CERTIFICATE-----
~~~~~~~
~~~~~~~
-----END CERTIFICATE-----

別の証明書を追加する場合は、同様に追加したい証明書の -----BEGIN CERTIFICATE----- から -----END CERTIFICATE----- を次の行に張り付けていきます

環境変数設定

まず、PowerShell 起動時に読み込む Profile (.bash_profile のWindows版) が存在するかを確認します。

PS C:\Users\hogehoge> Test-Path $PROFILE

True の場合は、既に存在するため Profile の作成手順は飛ばしてください。
False の場合は続けて Profile を作成していきます。

以下のコマンドを実行し、 Profile を作成します。
新規作成時は、-Force オプションを付けないとエラーになります。

PS C:\Users\hogehoge> New-Item -Path $PROFILE -ItemType File -Force


    ディレクトリ: C:\Users\hogehoge\fugafuga\ドキュメント\WindowsPowerShell


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        2025/11/05     14:13              0 Microsoft.PowerShell_profile.ps1

作成された Profile を メモ帳で編集します。
以下のコマンドを実行して起動します。

PS C:\Users\hogehoge> notepad $PROFILE

起動したら エクスポートした証明書を読み込ませるために以下を追記して保存します。

Microsoft.PowerShell_profile.ps1
$env:OCI_CLI_CERT_BUNDLE = 作成したpemファイルが保存されているパス\XXX.pem

# 例
$env:OCI_CLI_CERT_BUNDLE = "${home}\.oci\oci.pem"

変更した Profile を読み込ませます。

PS C:\Users\hogehoge> . $PROFILE

その後、OCI CLI を実行しエラーが解消されていればOKです。

PS C:\Users\hogehoge> oci iam region list --profile test --auth security_token

おわりに

今回は小ネタとしてOCI CLI利用時の証明書検証エラーへの対応方法をまとめました。


🌟この記事が誰かの役に立てば幸いです!
また、ご質問やフィードバックもお待ちしています。


参考資料

リファレンス

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?