証明書について

トピック

背景

一般的に、Secure Socket Layer(SSL/X509) 証明書は以下の用途で使用されます。

  • クライアントとサーバーとの間でセキュアな接続を確立する。
    例:
    • クライアント-ブラウザまたはVPNクライアント
    • サーバー-<your-org>.okta.comまたはOkta RADIUSエージェント
  • 通信を暗号化して、機密情報を確実に保護する。
  • 組織のIDを認証する。

証明書の用途

Okta RADIUSエージェントを含むさまざまなサブシステムでは、証明書は以下の用途で使用されます。

  • Extensible Authentication Protocol/Tunneled Transport Layer Securityプロトコル(EAP/TTLS)を使用する際の通信を保護する。

証明書の発行者とタイプ

デジタル証明書は、証明書の名前付きサブジェクトによって公開鍵の所有権を証明します。

発行者の観点からは、次の3つの証明書タイプがあります。

  • 認証局(ルートCA)の証明書は、認証局(CA)が所有および管理する証明書です。CAはデジタル証明書を発行するエンティティです。
  • 中間証明書とは、会社に付与される証明書または会社から下位部門に付与される証明書です。中間証明書は単独でも使用できますが、下位の中間証明書または最終証明書への署名に使用されることがよくあります。
  • 最終証明書は、個別使用の中間証明書の1つから個々の会社が作成する証明書です。

証明書チェーンの作成

証明書チェーンは証明書をグループ化したものです。Oktaでは通常、すべての証明書の変更をPrivacy Enhanced Mail(PEM)フォーマットにする必要があります。

証明書チェーンは、エンティティ証明書から信頼できるルート証明書の順にすべての証明書の内容を連結したものです。中間証明書が複数ある場合、それらもチェーンに含める必要があります。証明書は、エディターまたはコマンド・ライン・ツールを使用して連結できます。

たとえばLinuxの場合、エンティティ証明書、中間証明書、エンティティ秘密鍵を連結するには、次のようにします。

cat entity.pem intermediate.pem entity-primarykey.pem >certificate-chain.pem

連結すると、証明書のグループは次のようになります。

 -----BEGIN CERTIFICATE----- .... (エンティティ証明書の内容) -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- .... (中間証明書の内容) -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- .... (信頼できるルート証明書の内容、自己署名チェーンの場合のみ必要) -----END CERTIFICATE----- -----BEGIN RSA PRIVATE KEY----- .... (エンティティ秘密鍵の内容) -----END RSA PRIVATE KEY----- 
注

各証明書を含むチェーンを作成する必要があります。まず、すべての中間証明書、続いてエンティティ証明書を含めますが、信頼できるCAルート証明書は除外します。ルート証明書が必要なのは、自己署名証明書チェーンを使用する場合のみです。EAP-TTLSまたはEAP-GTCの場合、 エンティティの秘密鍵も含まれます。

証明書フォーマットの変換

通常、OktaではPEM 形式の証明書が必要です。 別のフォーマットの証明書を受信または生成した場合、連結してアップロードする前にPEMに変換しなければならない場合があります。証明書フォーマットの変換には、opensslなどのさまざまなツールを使用できます。
以下の例で、さまざまなフォーマットを.PEMに変換する方法を紹介します。

CRTからPEM

openssl x509 -in cert.crt -outform PEM -out cert.pem

CERからPEM

openssl x509 -in cert.cer -outform DER -out cert.pem

さらに、EAP-TTLSおよびEAP-GTCプロトコルはpfxおよびp12形式をサポートしています。これらを使うと、パスワードを指定して関連する秘密鍵を保護できます。

PFXに変換

openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt

P12に変換するサンプル・コマンド

openssl pkcs12 -export -out certificate.p12 -inkey privateKey.key -in certificate.crt

ほかにも複数の入力と変換が存在します。詳細については、opensslのドキュメントとopensslのmanページを参照してください。