これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの 12 つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド pkXNUMXutil です。
プログラム:
NAME
pk12util - PKCS #12 ファイルおよび NSS との間でキーと証明書をエクスポートおよびインポートする
データベース
SYNOPSIS
pk12util [-i p12File|-l p12File|-o p12File] [-d [sql:]ディレクトリ] [-h トークン名]
[-P dbprefix] [-r] [-v] [-k スロットパスワードファイル|-K スロットパスワード]
[-w p12filePasswordFile|-W p12filePassword]
ステータス
このドキュメントはまだ進行中です。 の最初のレビューに貢献してください
モジラ NSS バグ 836477【1]
DESCRIPTION
PKCS #12 ユーティリティ、 pk12util、任意のサーバー間で証明書を共有できるようになります。
PKCS#12をサポートします。 このツールは、PKCS#12 ファイルから証明書とキーをインポートできます。
セキュリティ データベース、証明書のエクスポート、証明書とキーのリストを作成します。
OPTIONS そして 議論
オプション
-i p12file
キーと証明書を PKCS#12 ファイルからセキュリティ データベースにインポートします。
-l p12ファイル
PKCS#12 ファイル内のキーと証明書をリストします。
-o p12ファイル
キーと証明書をセキュリティ データベースから PKCS#12 ファイルにエクスポートします。
Arguments
-c キー暗号
キー暗号化アルゴリズムを指定します。
-C 証明書暗号
キー証明書(パッケージ全体)の暗号化アルゴリズムを指定します。
-d [sql:]ディレクトリ
証明書のインポート先またはエクスポート先のデータベース ディレクトリを指定し、
キー。
pk12util 8種類のデータベースをサポートします:レガシーセキュリティデータベース(certXNUMX.db、
key3.db、secmod.db)および新しいSQLiteデータベース(cert9.db、key4.db、およびpkcs11.txt)。
接頭辞が sql: が使用されていない場合、ツールは指定されたデータベースが
古いフォーマット。
-hトークン名
インポートまたはエクスポート元のトークンの名前を指定します。
-k スロットパスワードファイル
スロットのパスワードを含むテキスト ファイルを指定します。
-K スロットパスワード
スロットのパスワードを指定します。
-m | --key-len キーの長さ
秘密キーの暗号化に使用する対称キーの長さを指定します。
-n | --cert-key-len certKeyLength
証明書の暗号化に使用する対称キーの長さを指定します。
およびその他のメタデータ。
-n 証明書名
エクスポートする証明書と秘密キーのニックネームを指定します。
-P 接頭辞
証明書および鍵データベースで使用されるプレフィックスを指定します。 このオプションが提供されています
特別な場合として。 証明書と鍵データベースの名前を変更することはできません。
お勧めします。
-r
すべてのデータを生 (バイナリ) 形式でダンプします。 これは DER ファイルとして保存する必要があります。 の
デフォルトでは、整形された ASCII 形式で情報が返されます。
p12 ファイル内の証明書と公開キーに関する情報。
-v
インポート時にデバッグログを有効にします。
-w p12fileパスワードファイル
pkcs #12 ファイルのパスワードを含むテキスト ファイルを指定します。
-W p12ファイルパスワード
pkcs #12 ファイルのパスワードを指定します。
リターン コード
· 0 - エラーなし
· 1 - ユーザーがキャンセルされました
· 2 - 使用上のエラー
· 6 - NLS 初期エラー
· 8 - 証明書 DB オープン エラー
· 9 - キー DB オープン エラー
· 10 - ファイル初期化エラー
· 11 - Unicode 変換エラー
· 12 - 一時ファイル作成エラー
· 13 - PKCS11 スロット エラーを取得
· 14 - PKCS12 デコーダー開始エラー
· 15 - インポート ファイルからの読み取りエラー
· 16 - pkcs12 デコード エラー
· 17 - pkcs12 デコーダ検証エラー
· 18 - pkcs12 デコーダー検証バッグ エラー
· 19 - pkcs12 デコーダ インポート バッグ エラー
· 20 - キー データベースのバージョン 3 からバージョン 2 への変換エラー
· 21 - 証明書データベースのバージョン 7 からバージョン 5 への変換エラー
· 22 - 証明書およびキー データベース パッチ エラー
· 23 - デフォルトの証明書データベースの取得エラー
· 24 - ニックネームによる証明書の検索エラー
· 25 - エクスポート コンテキスト作成エラー
· 26 - PKCS12 追加パスワードの完全性エラー
· 27 - 証明書とキー金庫の作成エラー
· 28 - PKCS12 証明書とキーの追加エラー
· 29 - PKCS12 エンコード エラー
例
インポート キーズ と 証明書
最も基本的な使い方は、 pk12util 証明書またはキーをインポートする場合は、PKCS#12 入力です
ファイル(-i) およびアクセスされるセキュリティ データベースを指定する何らかの方法 (いずれか -d のために
ディレクトリまたは -h トークンの場合)。
pk12util -i p12File [-h トークン名] [-v] [-d [sql:]ディレクトリ] [-P dbprefix] [-k
スロットパスワードファイル|-K スロットパスワード] [-w p12filePasswordFile|-W p12filePassword]
例:
# pk12util -i /tmp/cert-files/users.p12 -d sql:/home/my/sharednssdb
キーの暗号化に使用されるパスワードを入力します。
パスワードは 8 文字以上にする必要があります。
少なくとも XNUMX つの非アルファベット文字を含める必要があります。
新しいパスワードを入力してください:
パスワード再入力:
PKCS12 ファイルのパスワードを入力してください:
pk12util: PKCS12 インポート成功
エクスポート キーズ と 証明書
使い方 pk12util 証明書とキーをエクスポートするコマンドには、両方の名前が必要です。
データベースから抽出する証明書 (-n) および PKCS#12 形式の出力ファイルを
に書きます。 ファイルを暗号化して保護するために使用できるオプションのパラメータがあります。
証明書の資料。
pk12util -o p12File -n 証明書名 [-c keyCipher] [-C certCipher] [-m|--key_len keyLen]
[-n|--cert_key_len certKeyLen] [-d [sql:]ディレクトリ] [-P dbprefix] [-k スロットパスワードファイル|-K
スロットパスワード] [-w p12filePasswordFile|-W p12filePassword]
例:
# pk12util -o certs.p12 -n Server-Cert -d sql:/home/my/sharednssdb
PKCS12 ファイルのパスワードを入力してください:
パスワード再入力:
リスト キーズ と 証明書
.p12 ファイル内の情報は人間が判読できるものではありません。 の証明書とキーは、
ファイルは、人間が判読できる整形形式で印刷 (リスト) できます。
.p12 ファイル内のすべての証明書と公開キーの情報。
pk12util -l p12File [-h トークン名] [-r] [-d [sql:]ディレクトリ] [-P dbprefix] [-k
スロットパスワードファイル|-K スロットパスワード] [-w p12filePasswordFile|-W p12filePassword]
たとえば、これはデフォルトの ASCII 出力を出力します。
# pk12util -l certs.p12
PKCS12 ファイルのパスワードを入力してください:
キー(カバー付き):
フレンドリ名: Thawte Freemail メンバーの Thawte Consulting (Pty) Ltd. ID
暗号化アルゴリズム: SHA-12 および 2KEY Triple DES-CBC を使用した PKCS #1 V3 PBE
パラメーター:
塩:
45:2e:6a:a0:03:4d:7b:a1:63:3c:15:ea:67:37:62:1f
反復数: 1 (0x1)
証明書:
日付:
バージョン:3(0x2)
シリアル番号: 13 (0xd)
署名アルゴリズム:RSA暗号化を使用したPKCS#1 SHA-1
発行者: 「E=[メール保護],CN=Thawte パーソナル フリーメール C
A、OU=認証サービス部門、O=Thawte Consulting、L=Cape T
独自、ST=西ケープ、C=ZA"
あるいは、 -r 証明書を印刷し、別の DER にエクスポートします。
バイナリファイル。 これにより、証明書をサポートする別のアプリケーションに提供できるようになります。
.p12 ファイル。 各証明書は、次から始まる連番のファイルに書き込まれます。
file0001.der から file000N.der まで続行し、ごとに番号をインクリメントします。
証明書:
pk12util -l test.p12 -r
PKCS12 ファイルのパスワードを入力してください:
キー(カバー付き):
フレンドリ名: Thawte Freemail メンバーの Thawte Consulting (Pty) Ltd. ID
暗号化アルゴリズム: SHA-12 および 2KEY Triple DES-CBC を使用した PKCS #1 V3 PBE
パラメーター:
塩:
45:2e:6a:a0:03:4d:7b:a1:63:3c:15:ea:67:37:62:1f
反復数: 1 (0x1)
証明書フレンドリ名: Thawte Personal Freemail Issuing CA - Thawte Consulting
証明書のフレンドリ名: Thawte Freemail メンバーの Thawte Consulting (Pty) Ltd. ID
PASSWORD 暗号化
PKCS#12 は、秘密キーだけでなく証明書も保護します。
およびキーに関連付けられたメタデータ。 パスワードベースの暗号化を使用して保護します
PKCS#12 ファイル、およびオプションでパッケージ全体にエクスポートする際の秘密キー。 いいえの場合
アルゴリズムが指定されている場合、ツールはデフォルトで使用します PKCS12 V2 PBE SHA1 と 3KEY トリプル
DES-cbc 秘密鍵暗号化用。 PKCS12 V2 PBE SHA1 と 40 ビット RC4 デフォルトです
FIPS モードでない場合のパッケージ全体の暗号化用。 FIPS モードの場合、
パッケージの暗号化。
秘密キーは、デフォルトでは常に強力な暗号化で保護されています。
いくつかの種類の暗号がサポートされています。
PKCS#5 V2 の対称 CBC 暗号
・DES-CBC
・RC2-CBC
・RC5-CBCPad
· DES-EDE3-CBC (キー暗号化のデフォルト)
・AES-128-CBC
・AES-192-CBC
・AES-256-CBC
・カメリア-128-CBC
・カメリア-192-CBC
・カメリア-256-CBC
PKCS#12 PBE 暗号
· Sha12 および 1 ビット RC128 を備えた PKCS #4 PBE
· Sha12 および 1 ビット RC40 を備えた PKCS #4 PBE
· Sha12 および Triple DES CBC を備えた PKCS #1 PBE
· Sha12 および 1 ビット RC128 CBC を備えた PKCS #2 PBE
· Sha12 および 1 ビット RC40 CBC を備えた PKCS #2 PBE
· SHA12 および 2 ビット RC1 を備えた PKCS128 V4 PBE
· SHA12 および 2 ビット RC1 を備えた PKCS40 V4 PBE (非 FIPS モードのデフォルト)
· SHA12 および 2KEY Triple DES-cbc を備えた PKCS1 V3 PBE
· SHA12 および 2KEY Triple DES-cbc を備えた PKCS1 V2 PBE
· SHA12 および 2 ビット RC1 CBC を備えた PKCS128 V2 PBE
· SHA12 および 2 ビット RC1 CBC を備えた PKCS40 V2 PBE
PKCS#5 PBE 暗号
· MD5 および DES CBC を使用した PKCS #2 パスワード ベースの暗号化
· MD5 および DES CBC を使用した PKCS #5 パスワード ベースの暗号化
· SHA5 および DES CBC を使用した PKCS #1 パスワード ベースの暗号化
PKCS#12 では、暗号プロバイダーはソフト トークン モジュールまたは外部ハードウェアである可能性があります。
モジュール。 暗号化モジュールが要求されたアルゴリズムをサポートしていない場合、
次に最適なものが選択されます (通常はデフォルト)。 適切な代替品がない場合は、
目的のアルゴリズムが見つかると、ツールはエラーを返します。 いいえ セキュリティ モジュール できる 実行する
要求されました 操作.
NSS DATABASE TYPES
NSSは当初、セキュリティ情報を格納するためにBerkeleyDBデータベースを使用していました。 最後のバージョン
これらの レガシー データベースは次のとおりです。
・証明書の場合はcert8.db
・キーのkey3.db
・PKCS#11モジュール情報用のsecmod.db
ただし、BerkeleyDBにはパフォーマンスの制限があるため、BerkeleyDBを簡単に使用することはできません。
複数のアプリケーションを同時に。 NSSには、アプリケーションができる柔軟性があります。
共有データベースを維持し、機能しながら、独自の独立したデータベースエンジンを使用する
アクセスの問題について。 それでも、NSSは、真に共有されたものを提供するために、より多くの柔軟性を必要とします
セキュリティデータベース。
2009年、NSSは、SQLiteデータベースではなくSQLiteデータベースである新しいデータベースセットを導入しました。
バークレーDB。 これらの新しいデータベースにより、アクセシビリティとパフォーマンスが向上します。
・証明書の場合はcert9.db
・キーのkey4.db
· pkcs11.txt。新しいファイルに含まれるすべての PKCS #11 モジュールのリストです。
セキュリティデータベースディレクトリ内のサブディレクトリ
SQLiteデータベースは共有されるように設計されているため、これらは shared データベース
タイプ。 共有データベースタイプが推奨されます。 レガシーフォーマットは後方に含まれています
互換性。
デフォルトでは、ツール(certutilを, pk12util, modutil)与えられたセキュリティを仮定します
データベースは、より一般的なレガシータイプに従います。 SQLiteデータベースの使用は手動で行う必要があります
を使用して指定 sql: 指定されたセキュリティディレクトリのプレフィックス。 例えば:
# pk12util -i /tmp/cert-files/users.p12 -d sql:/home/my/sharednssdb
共有データベースタイプをツールのデフォルトタイプとして設定するには、
NSS_DEFAULT_DB_TYPE 環境変数 SQL:
NSS_DEFAULT_DB_TYPE = "sql"をエクスポートします
この行は、に追加して設定できます。 〜/ .bashrc 変更を永続的にするためのファイル。
ほとんどのアプリケーションはデフォルトで共有データベースを使用しませんが、次のように構成できます。
それらを使用してください。 たとえば、このハウツー記事では、FirefoxとThunderbirdを構成する方法について説明しています。
新しい共有NSSデータベースを使用するには:
・https://wiki.mozilla.org/NSS_Shared_DB_Howto
共有NSSデータベースの変更に関するエンジニアリングドラフトについては、NSSプロジェクトを参照してください。
wiki:
・https://wiki.mozilla.org/NSS_Shared_DB
onworks.net サービスを使用してオンラインで pk12util を使用する