機械翻訳について

NSS

この章では、Oracle Linuxで使用可能なcertutilネットワーク・セキュリティ・サービス(NSS)証明書ツールと、それを使用して、証明書署名リクエスト(CSR)、自己署名証明書、およびアプリケーションの証明書と秘密キーを格納するNSSデータベース・ファイルを持つプライベートCA証明書を作成する方法について説明します。

NSSは、セキュリティ対応のクライアントおよびサーバー・アプリケーションのクロス・プラットフォーム開発を可能にするために設計されたライブラリのセットです。 NSSで構築されたアプリケーションは、SSL v2およびv3、TLS、PKCS #5、PKCS #7、PKCS #11、PKCS #12、S/MIME、X.509 v3証明書およびその他のセキュリティ標準で動作します。

certutilを使用して証明書、CSRおよびキーを管理するには、NSSデータベース・ファイルへのアクセス権が必要です。 レガシー・セキュリティ・データベース・ファイル(証明書の場合はcert8.db、キーの場合はkey3.db、PKCS #11モジュール情報の場合はsecmod.db)または新しいSQLiteデータベース・ファイル(証明書の場合はcert9.db、キーの場合はkey4.db、PKCS #11モジュールの場合はpkcs11.txt)を使用できます。 この項では、新しいデータベース・ファイルの例を示します。

関連するpk12utilコマンドを使用して、PKCS #12ファイルからNSSデータベースまたはその逆に証明書およびキーをエクスポートおよびインポートすることもできます。

certutilおよびpk12utilを使用するには、アプリケーション・ストリーム・リポジトリで使用可能なnss-toolsパッケージをインストールします:
sudo dnf install nss-tools

次の例は、certutilおよびpk12utilコマンドの使用方法を示しています。

  • NSSデータベースを作成するには、次のコマンドを実行します。database_directoryは、NSSデータベース・ファイルcert9.dbkey4.dbおよびpkcs11.txtを作成するホーム・ディレクトリです:
    certutil -N -d database_directory
    たとえば、ユーザーのホーム・ディレクトリのnssdbというフォルダにデータベースを作成します:
    certutil -N -d $HOME/nssdb
  • 自己署名証明書を生成するには、次のコマンドを実行します:
    certutil -d database_directory -S -s subject -n nickname -x -t trust_args -o file
    この例では、次のようになります。
    • -Sは、個々の証明書を作成して証明書データベースに追加することを示します。
    • -sは、「コンテンツ」https://www.rfc-editor.org/rfc/rfc1485.htmlで定義された識別名書式を使用する識別名を指定することを示します。
    • -nは、「あだ名」が作成するエンティティのニックネームであるニックネームを指定することを示します。
    • -xは、別のCAからシグネチャを取得するのではなく、作成またはデータベースに追加される証明書のシグネチャを生成することを示します。
    • -t信頼引数を追加することを示します。trust_argsは、証明書に適用する信頼属性です。 各証明書には3つのトラスト・カテゴリがあり、各トラスト設定のSSL、電子メール、オブジェクト署名の順序で表されます。 各カテゴリ位置で、なし、任意またはすべての属性コードを使用します。 有効なコードは次のとおりです。
      • p - 有効なピア
      • P - 信頼できるピア(pを含む)
      • c - 有効なCA
      • C - 信頼できるCA (cを含む)
      • T - クライアント認証用の信頼できるCA (SSLサーバーのみ)
    たとえば、次のコマンドでは、ニックネームがexample_testwww1.example.com共通名の自己署名証明書が作成されます。 トラスト属性は、各カテゴリのC (トラステッドCA)です。
    certutil -d $HOME/nssdb/ -S -s 'CN=www1.example.com, O=Example Organization, L=Ottawa, C=CA' -n example_test -x -t C,C,C
  • 他の場所で生成された既存の証明書または証明書を追加するには、次のコマンドを実行します:
    certutil -A -n nickname -t trust_args -d database_directory -i input-file

    説明:

    • -A証明書データベースに証明書を追加することを示します。
    • -i:証明書ファイルなどの入力ファイル(PEMファイルなど)を指定することを示します。
    たとえば:
    certutil -A -n "CN=My SSL Certificate" -t C,C,C -d $HOME/nssdb/ -i $HOME/tls-ca-bundle.pem
  • すべての証明書をリストするには、次のコマンドを実行します:
    certutil -L -d database_directory

    たとえば:

    certutil -L -d $HOME/nssdb/
    
    Certificate Nickname                                         Trust Attributes
                                                                 SSL,S/MIME,JAR/XPI
    
    example_test                                                 Cu,Cu,Cu
    CN=My SSL Certificate                                        C,C,C

    証明書をリストする場合、信頼タグには、秘密キーが証明書に関連付けられていることを示すuフラグが含まれることがあります。

  • データベースから証明書を削除するには、次のコマンドを実行します:
    certutil -D -d database_directory -n nickname

    前述の例で、-Dは、データベースから特定の証明書を削除することを示します。

  • すべてのキーをリストするには、次のコマンドを実行します:
    certutil certutil -K -d database_directory

    たとえば:

    certutil -K -d $HOME/nssdb/
    certutil: Checking token "NSS Certificate DB" in slot "NSS User Private Key and Certificate Services"
    Enter Password or Pin for "NSS Certificate DB":
    < 0> rsa      35f4555f329c1490b3570c9d36e1ec56f2329f08   NSS Certificate DB:example_test
    < 1> rsa      303936d20b3522e9293b75db3dc48f77c1871767   NSS Certificate DB:example_test2
  • 公開キーをPEM形式で表示するには、次のコマンドを実行します:
    certutil -L -d database_directory -a -n nickname

    たとえば:

    certutil -L -d $HOME/nssdb/ -a -n example_test
    -----BEGIN CERTIFICATE-----
    ...[certificate text]
    -----END CERTIFICATE-----
  • 証明書とキーを単一のPKCS #12ファイルにエクスポートするには、次のコマンドを実行します:
    pk12util -o certs.p12 -n example_test -d sql:database_directory
  • 証明書を変更するには、-Mオプションを使用します。 たとえば、次の例では、example_test証明書の信頼引数をC,C,CからP,P,Pに変更します:
    $ certutil -d database_directory -M -t "P,P,P" -n example_test

詳細は、certutil(1)およびpk12util(1)マニュアル・ページおよびNSSオープン・ソース・プロジェクト(https://firefox-source-docs.mozilla.org/security/nss/index.html)を参照してください。