「ネットワークセキュリティサービス」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) (→参照: update) |
Kusanaginoturugi (トーク | 投稿記録) (→証明書の管理: update and insert.) |
||
13行目: | 13行目: | ||
[[公式リポジトリ]]にある {{Pkg|nss}} を[[pacman|インストール]]してください。 |
[[公式リポジトリ]]にある {{Pkg|nss}} を[[pacman|インストール]]してください。 |
||
− | == |
+ | == 使用方法 == |
+ | NSS は、動的に構成された [[Wikipedia:PKCS 11|PKCS #11]] モジュールのリストに対する操作として実装されています。各モジュールは、暗号操作を実行し、暗号オブジェクトを保存するためのトークンへのアクセスを提供します。構成されたモジュールのリストは、通常、ユーザーが NSS の初期化時に提供する任意のディレクトリに、{{ic|pkcs11.txt}} というファイルとして保存されます。このリストには常に、「NSS Internal PKCS #11 Module」という組み込みモジュールが含まれており、トークン「NSS Generic Crypto Services」と「NSS Certificate DB」を提供します。最初のトークンは、RSA、SHA256、TLS などの暗号メカニズムを提供します。2 番目のトークンは、{{ic|cert9.db}} および {{ic|key4.db}} というファイルに、同じユーザー指定のディレクトリ内に証明書と秘密鍵を保存します。{{ic|pkcs11.txt}}、{{ic|cert9.db}}、および {{ic|key4.db}} のファイルは「NSS データベース」とも呼ばれます。いくつかのアプリケーションの NSS データベースへのパスは、以下の表に記載されています。各操作のためにいくつかのパスを指定する必要があります。以下の例では {{ic|~/.pki/nssdb/}} を使用します。 |
||
− | NSS に付属している ''certutil'' ユーティリティを使うことで証明書を管理できます。 |
||
+ | |||
+ | {| class="wikitable" |
||
+ | ! アプリケーション !! NSS データベースへのパス |
||
+ | |- |
||
+ | | {{Pkg|chromium}}, {{Pkg|evolution}} |
||
+ | | {{ic|~/.pki/nssdb/}} |
||
+ | |- |
||
+ | | {{Pkg|firefox}} |
||
+ | | {{ic|~/.mozilla/firefox/<profile>/}} |
||
+ | |- |
||
+ | | {{Pkg|thunderbird}} |
||
+ | | {{ic|~/.thunderbird/<profile>/}} |
||
+ | |- |
||
+ | | {{Pkg|libreoffice-fresh}} |
||
+ | | オプションで設定可能 [https://help.libreoffice.org/latest/en-US/text/shared/guide/digitalsign_send.html] |
||
+ | |} |
||
+ | |||
+ | NSS は、[[Wikipedia:PKCS 11|PKCS #11]] モジュールを管理するための {{man|1|modutil}} ユーティリティ、および証明書と秘密鍵を管理するための {{man|1|certutil}} ユーティリティを提供します。 |
||
+ | |||
+ | {{Note|NSS は、初期化フラグに応じて、{{ic|/usr/lib/libnssckbi.so}} を [[Wikipedia:PKCS 11|PKCS #11]] モジュールのリストに自動的に追加することができます。}} |
||
=== 証明書 DB の確認 === |
=== 証明書 DB の確認 === |
||
58行目: | 78行目: | ||
証明書を削除するには {{ic|-D}} オプションを使って下さい: |
証明書を削除するには {{ic|-D}} オプションを使って下さい: |
||
$ certutil -d sql:$HOME/.pki/nssdb -D -n ''certificate_nickname'' |
$ certutil -d sql:$HOME/.pki/nssdb -D -n ''certificate_nickname'' |
||
+ | |||
+ | === 信頼できる CA 証明書の追加 === |
||
+ | |||
+ | システム全体のトラストストア {{ic|/usr/lib/pkcs11/p11-kit-trust.so}} は、通常、自動的に [[Wikipedia:PKCS 11|PKCS #11]] モジュールのリストに追加されます。システム全体の設定については、[[Transport Layer Security#Trust management]] を参照してください。アプリケーションごとの設定には、以下のコマンドを使用して CA 証明書を追加します: |
||
+ | |||
+ | certutil -d ~/.pki/nssdb/ -A -i ''/path/to/certificate'' -n ''certificate nickname'' -t C,, |
||
== 参照 == |
== 参照 == |
2024年8月14日 (水) 22:25時点における版
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 -S -s subject -n nickname -x -t C,C,C -o file
証明書のインポート
証明書を追加するには -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,,