「ネットワークセキュリティサービス」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) (→自己署名証明書を生成: update.) |
Kusanaginoturugi (トーク | 投稿記録) (カテゴリを修正) |
||
1行目: | 1行目: | ||
− | [[Category: |
+ | [[Category:トランスポート層セキュリティ]] |
[[Category:Mozilla]] |
[[Category:Mozilla]] |
||
[[en:Network Security Services]] |
[[en:Network Security Services]] |
2024年8月14日 (水) 22:27時点における版
Network Security Services (NSS) はセキュア通信を用いるクライアント・サーバーアプリケーションの開発のために作られたクロスプラットフォームなライブラリのセットです。
NSS を使って作成されたアプリケーションは SSL v2 と v3, TLS, PKCS #5, #7, PKCS #11, PKCS #12, S/MIME, X.509 v3 証明書などのセキュリティ規格をサポートします。
NSS は、 Chromium や Firefox などの多くのパッケージで必要です。
目次
インストール
使用方法
NSS は、動的に構成された PKCS #11 モジュールのリストに対する操作として実装されています。各モジュールは、暗号操作を実行し、暗号オブジェクトを保存するためのトークンへのアクセスを提供します。構成されたモジュールのリストは、通常、ユーザーが NSS の初期化時に提供する任意のディレクトリに、pkcs11.txt
というファイルとして保存されます。このリストには常に、「NSS Internal PKCS #11 Module」という組み込みモジュールが含まれており、トークン「NSS Generic Crypto Services」と「NSS Certificate DB」を提供します。最初のトークンは、RSA、SHA256、TLS などの暗号メカニズムを提供します。2 番目のトークンは、cert9.db
および key4.db
というファイルに、同じユーザー指定のディレクトリ内に証明書と秘密鍵を保存します。pkcs11.txt
、cert9.db
、および key4.db
のファイルは「NSS データベース」とも呼ばれます。いくつかのアプリケーションの NSS データベースへのパスは、以下の表に記載されています。各操作のためにいくつかのパスを指定する必要があります。以下の例では ~/.pki/nssdb/
を使用します。
アプリケーション | NSS データベースへのパス |
---|---|
chromium, evolution | ~/.pki/nssdb/
|
firefox | ~/.mozilla/firefox/<profile>/
|
thunderbird | ~/.thunderbird/<profile>/
|
libreoffice-fresh | オプションで設定可能 [1] |
NSS は、PKCS #11 モジュールを管理するための modutil(1) ユーティリティ、および証明書と秘密鍵を管理するための certutil(1) ユーティリティを提供します。
証明書 DB の確認
全ての証明書のリストを表示するには:
$ certutil -d sql:$HOME/.pki/nssdb -L
証明書の詳細を確認するには:
$ certutil -d sql:$HOME/.pki/nssdb -L -n certificate_nickname
RSA 秘密鍵を生成
$ certutil -G -d database_directory -g keysize -n nickname
証明書署名要求を生成
$ certutil -S -s subject -n nickname -x -t C,C,C -o file
自己署名証明書の生成
$ certutil -d ~/.pki/nssdb/ -S -s subject -n nickname -x -t C,C,C -o file
OpenSSL を使用して自己署名証明書を生成
OpenSSL を使用すると、certutil のサブジェクト形式を使用するよりも、フォーマットが容易な対話型プロンプトを利用できます。以下の手順は [2] と [3] から適応されています。
鍵ペアと証明書を作成します(-noenc は秘密鍵のパスワードによる暗号化を無効にします):
$ openssl req -x509 -newkey rsa:4096 -keyout myKey.pem -out cert.pem -days 365 -noenc
pkcs12 ファイルを作成します:
$ openssl pkcs12 -export -out keyStore.p12 -inkey myKey.pem -in cert.pem
NSS データベースがまだ存在しない場合は作成します:
$ certutil -d ~/.pki/nssdb -N --empty-password
鍵をデータベースにインポートします:
$ pk12util -d ~/.pki/nssdb -i keyStore.p12
証明書のインポート
証明書を追加するには -A
オプションを使います:
$ certutil -d sql:$HOME/.pki/nssdb -A -t "TRUSTARGS" -n certificate_nickname -i /path/to/cert/filename
TRUSTARGS
は、0個以上のアルファベット文字の3つの文字列であり、コンマで区切られています。例:"TCu、Cu、Tuw"
これらは、SSL、電子メール、およびオブジェクト署名に対して証明書を信頼する方法を定義し、 certutil ドキュメントで説明されています。 または ブログ投稿 信頼フラグについて参照。
SSL クライアント認証のための個人証明書と秘密鍵を追加するには次のコマンドを使います:
$ pk12util -d sql:$HOME/.pki/nssdb -i /path/to/PKCS12/cert/filename.p12
上記のコマンドで PKCS #12 ファイルに保存されている個人証明書と秘密鍵がインポートされます。個人証明書の TRUSTARGS
は "u,u,u"
に設定されます。
証明書の編集
証明書を編集するには certutil に -M
オプションを付けます。例えば、TRUSTARGS
を編集するには:
$ certutil -d sql:$HOME/.pki/nssdb -M -t "TRUSTARGS" -n certificate_nickname
証明書の削除
証明書を削除するには -D
オプションを使って下さい:
$ certutil -d sql:$HOME/.pki/nssdb -D -n certificate_nickname
信頼できる CA 証明書の追加
システム全体のトラストストア /usr/lib/pkcs11/p11-kit-trust.so
は、通常、自動的に PKCS #11 モジュールのリストに追加されます。システム全体の設定については、Transport Layer Security#Trust management を参照してください。アプリケーションごとの設定には、以下のコマンドを使用して CA 証明書を追加します:
certutil -d ~/.pki/nssdb/ -A -i /path/to/certificate -n certificate nickname -t C,,