Linux 用にヘッドレスブラウザをセットアップするための証明書の生成

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:4分
  • Docker REST API を保護し、HTTP 要求を認証するための TLS/SSL 証明書を生成します。

    始める前に

    Linux 用のヘッドレスブラウザーのセットアップ」トピックに記載されている前提条件を満たしてください。

    必要なロール:自分の ServiceNow インスタンスの admin、およびホストマシンのローカルアドミニストレーター。

    このタスクについて

    警告:
    信頼できる認証局から認証局キーを取得します。

    デフォルトでは、Docker API を公開すると要求が認証されないため、ホストマシンが攻撃に対して脆弱になる可能性があります。ただし、Docker API は、HTTPS 暗号化で提供される公開鍵と秘密鍵に対して要求が検証される TLS 認証をサポートしています。この手順では、サーバーとクライアントに対して鍵を作成します。

    ヒント:
    これらを覚えやすくするには、Linux ターミナルで次のコマンドを入力します。注意:これらの環境変数をターミナルのプロファイルに追加しないでください。セキュリティ上の理由から、それらは現在のセッション中にのみ存在する必要があります。
    • export PASSWORD="<証明書を生成するためのパスワード>"
    • export SERVERIP="<このサーバーの IP アドレス>"
    • export HOSTNAME="<このサーバーのホスト名>"
    詳細については、「TLS (HTTPS) を使用して Docker デーモンソケットを保護する (Use TLS (HTTPS) to protect the Docker daemon socket)」を参照してください。

    手順

    1. コマンドラインを開きます。
    2. 自己署名認証局のキーを生成するか、信頼できる認証局からキーペアを取得します。
      次のコマンドは一例です。構成によって異なる場合があることに注意してください。
      • openssl genrsa -aes256 -passout pass:$PASSWORD -out ca-key.pem 4096
      • openssl req -passin pass:$PASSWORD -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem
      • chmod 0400 ca-key.pem
      • chmod 0444 ca.pem
    3. 認証局キーを使用してサーバーのキーペアを生成します。
      次のコマンドは一例です。構成によって異なる場合があることに注意してください。
      • openssl genrsa -out server-key.pem 4096
      • openssl req -subj "/CN=$HOSTNAME" -new -key server-key.pem -out server.csr
      • echo "subjectAltName = DNS:$HOSTNAME,IP:$SERVERIP,IP:127.0.0.1" > extfile.cnf
      • openssl x509 -passin pass:$PASSWORD -req -days 365 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -extfile extfile.cnf
    4. 認証局キーを使用してクライアントのキーペアを作成します。
      次のコマンドは一例です。構成によって異なる場合があることに注意してください。
      • openssl genrsa -out client-key.pem 4096
      • openssl req -subj "/CN=$HOSTNAME" -new -key client-key.pem -out client.csr
      • echo "extendedKeyUsage = clientAuth" > extfile.cnf
      • openssl x509 -passin pass:$PASSWORD -req -days 365 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out client-cert.pem -extfile extfile.cnf

      これで、すべての暗号化キーが作成されました。

    5. CA 公開鍵とクライアントのキーペアを Java キーストアにインポートします。
      次のコマンドは一例です。構成によって異なる場合があることに注意してください。

      キーストアファイルを作成し、そのパスワードを作成します (後で使用するために保存します):keytool -genkey -keyalg RSA -alias dse -keystore my.keystore

      キーストアファイルからデフォルトのエントリを削除します:keytool -delete -alias dse -keystore my.keystore

      CA 公開鍵をキーストアにインポートします:keytool -import -keystore my.keystore -trustcacerts -alias ca -file ca.pem

      クライアントのキーペアをインポートします。
      注:
      新しい pkcs12 キーストアファイルを作成し、そのファイルにキーペアをインポートします。次に、その内容を元のキーストアファイルにコピーします。
      • openssl pkcs12 -export -name clientkeypair -in client-cert.pem -inkey client-key.pem -out clientkeypair.p12
      • keytool -importkeystore -destkeystore my.keystore -srckeystore clientkeypair.p12 -srcstoretype pkcs12 -alias clientkeypair

      これで、すべての証明書をキーストアファイルに追加したので、後で ServiceNow インスタンスにアップロードするためにファイル my.keystore を保存します。また、キーストアファイルの作成を要求されたときに入力したパスワードを覚えておいてください。ServiceNow インスタンスのフォームに、そのパスワードを入力する必要があります。