Go to main content

マニュアルページ セクション 1: ユーザーコマンド

印刷ビューの終了

更新: 2022年7月27日
 
 

pktool(1)

名前

pktool - 証明書と鍵の管理

形式

pktool [–f option_file] [–i] subcommand subcommand_options ...

説明

pktool コマンドを使用すると、PKCS#11 トークン (暗号化フレームワーク) および OpenSSL の標準的なファイルベースのキーストアを含む、複数のキーストア内の証明書と鍵を管理できます。

pktool は、証明書失効リスト (Certificate Revocation List、CRL) の一覧表示、削除、およびインポートもサポートしています。pktool は、CRL の作成、CRL への署名の追加、および CRL のエクスポートはサポートしていません。PKCS#11 キーストアの CRL サポートはファイルベースです。

オプション

次のコマンドオプションがサポートされています。

–f option_file

コマンド行にオプションを入力する代わりに、ファイルにオプションを設定できます。

pktool では多数のサブコマンドと関連オプションをコマンド行で指定する可能性があるため、ユーザーの利便性を高めるためにこのオプションが用意されています。

option_file は、1 行に 1 つのオプションまたは値のペアという形式になります。

option_file の例を次に示します。

list
keystore=file
dir=/export/foo
objtype=key
–i

gencert サブコマンドおよび gencsr サブコマンドの subject-DN を対話形式で指定できます。–i を指定すると、subject-DN を作成するためのデータを入力するよう求めるプロンプトが表示されます。

–i オプションの使用例を次に示します。

Country Name (2 letter code) [US]: US
State or Province Name (full name) [Some-State]: CA
Locality Name (eg, city) []: Menlo Park
Organization Name (eg, company): Example Corp.
Organizational Unit Name (eg, section): DevOps
Common Name (eg, YOUR name): John Smith
 Email Address []: john.smith@example.com

その結果作成される subject-DN は次のとおりです。

"C=US, ST=CA, L=Menlo Park, O=Example Corp.,\
   OU=DevOps, emailAddress=john.smith@example.com, \
   CN=John Smith"
–?, ––help

The –? option displays usage and help information. ––help is a synonym for –?.

サブコマンド

サポートされているサブコマンドは次のとおりです。

delete

delete サブコマンドの書式は次のとおりです。

pktool delete [token=token[:manuf[:serial]]]
              [objtype=private|public|both]
              [label=object-label]

pktool delete keystore=pkcs11
              objtype=cert[:public | private | both]]
              [token=token[:manuf[:serial]]]
              [label=cert-label]
              [serial=hex-serial-number]
              [issuer=issuer-DN]
              [subject=subject-DN]


pktool delete keystore=pkcs11
              objtype=key[:public | private | both]]
              [token=token[:manuf[:serial]]]
              [label=key-label]

pktool delete keystore=pkcs11
              objtype=crl
              infile=input-fn


pktool delete keystore=file
              objtype=cert
              [infile=input-fn]
              [dir=directory-path]
              [serial=hex-serial-number]
              [issuer=issuer-DN]
              [subject=subject-DN]

pktool delete keystore=file
              objtype=key
              [infile=input-fn]
              [dir=directory-path]

pktool delete keystore=file
              objtype=crl
              infile=input-fn

証明書、鍵、または証明書失効リスト (CRL) を削除します。

PKCS#11 トークンから個人証明書または秘密鍵を削除する場合は、正しい個人識別番号 (Personal Identification Number、PIN) を入力して PKCS#11 に対する認証を行うよう求めるプロンプトが表示されます。

download

download サブコマンドの書式は次のとおりです。

pktool download url=url_str
                 [objtype=crl|cert]
                 [http_proxy=proxy_str]
                 [outfile=output-fn]
                 [dir=directory-path]

指定された URL の場所から CRL ファイルまたは証明書ファイルをダウンロードします。ファイルが正常にダウンロードされると、ダウンロードした CRL または証明書ファイルの有効性が確認されます。CRL または証明書の期限が切れている場合、download は警告を表示します。

export

export サブコマンドの書式は次のとおりです。

pktool export [token=token[:manuf[:serial]]]
              [outfile=output-fn]

pktool export keystore=pkcs11
              [outfile=output-fn]
              [objtype=cert|key]
              [label=label]
              [subject=subject-DN]
              [issuer=issuer-DN]
              [serial=hex-serial-number]
              [outformat=pem|der|pkcs12|raw]
              [token=token[:manuf[:serial]]]

pktool export keystore=file
              certfile=cert-input-fn
              keyfile=key-input-fn
              [outfile=output-pkcs12-fn]

PKCS#11 トークンの内容またはファイルベースのキーストアに含まれる証明書を、指定されたファイルに保存します。

gencert

gencert サブコマンドの書式は次のとおりです。

pktool gencert [-i] [ keystore=pkcs11]
              label=key/cert-label
              subject=subject-DN
              serial=hex_serial_number
              [altname=[critical:]subjectAltName,subjectAltName...]
              [keyusage=[critical:]usage,usage...]
              [token=token[:manuf[:serial]]]
              [ keytype=rsa | ec [curve=ECC Curve Name] \
                  [hash=md5 | sha1 | sha224 | sha256 | sha384 | sha512]]
              [ keytype=dsa [hash=sha1 | sha224 | sha256 ]]
              [keylen=key-size]
              [eku=[critical:]EKU_name,...]
              [listcurves]
              [lifetime=number-hour|number-day|number-year]

pktool gencert [-i] keystore=file
              outcert=cert-fn
              outkey=key-fn
              subject=subject-DN
              serial=hex_serial_number
              [altname=[critical:]subjectAltName,subjectAltName...]
              [keyusage=[critical:]usage,usage...]
              [format=der|pem]
              [ keytype=rsa
                [hash=md5|sha1|sha224|sha256|sha384|sha512]]
              [ keytype=dsa [hash=sha1 | sha224 | sha256 ]]
              [keylen=key-size]
              [eku=[critical:]EKU_name,...]
                [lifetime=number-hour|number-day|number-year]

自己署名付き証明書を生成し、証明書とそれに関連付けられた秘密鍵を指定のキーストアにインストールします。

pktool gencert のオプションとしてハッシュが指定されないかぎり、使用されるデフォルトハッシュは SHA-256 です。

gencert を実行すると、トークンベースのキーストア用の PIN を入力するよう求めるプロンプトが表示されます。

gencsr

gencsr サブコマンドの書式は次のとおりです。

pktool gencsr [-i] keystore=pkcs11
              label=key-label
              outcsr=csr-fn
              subject=subject-DN
              [altname=[critical:]subjectAltName,subjectAltName...]
              [keyusage=[critical:]usage,usage...]
              [token=token[:manuf[:serial]]]
              [ keytype=rsa | ec [curve=ECC Curve Name] \
               [hash=md5 | sha1 | sha224 | sha256 | sha384 | sha512]]
              [ keytype=dsa [hash=sha1 | sha224 | sha256 ]]
              [keylen=key-size]
              [format=pem|der]
              [eku=[critical:]EKU_name,...]
              [rfc2986attr=y|n]
              [listcurves]

pktool gencsr [-i] keystore=file
              outcsr=csr-fn
              outkey=key-fn
              subject=subject-DN
              [altname=[critical:]subjectAltName,subjectAltName...]
              [keyusage=[critical:]usage,usage...]
              [dir=directory-path]
              [ keytype=rsa
                [hash=md5|sha1|sha224|sha256|sha384|sha512]]
              [ keytype=dsa [hash=sha1 | sha224 | sha256 ]]
              [keylen=key-size]
              [format=pem|der]
              [rfc2986attr=y|n]
              [eku=[critical:]EKU_name,...]

PKCS#10 の証明書署名要求 (CSR) ファイルを作成します。この CSR を承認局 (Certifying Authority、CA) に送信すると、署名を取得できます。gencsr サブコマンドを実行すると、トークンベースのキーストア用の PIN を入力するよう求めるプロンプトが表示されます。

pktool gencsr のオプションとしてハッシュが指定されないかぎり、使用されるデフォルトハッシュは SHA-256 です。

genkey

genkey サブコマンドの書式は次のとおりです。

pktool genkey [keystore=pkcs11]
              label=key-label
              [keytype=aes|arcfour|des|3des|generic]
              [keylen=key-size (for aes, arcfour, or \
                  generic keytypes only)]
              [token=token[:manuf[:serial]]]
              [sensitive=y|n]
              [extractable=y|n]
              [print=y|n]


pktool genkey keystore=file
              outkey=key-fn
              [keytype=aes|arcfour|des|3des|generic]
              [keylen=key-size (for aes, arcfour, \
                   or generic keytypes only)]
              [print=y|n]

指定されたキーストアに対称鍵を生成します。genkey サブコマンドを実行すると、トークンベースのキーストア用の PIN を入力するように求めるプロンプトが表示されます。

genkeypair

genkeypair サブコマンドの書式は次のとおりです。

pktool genkeypair [keystore=pkcs11]
                  label=key-label
                  [token=token[:manuf[:serial]]]
                  [keytype=rsa|dsa|ec [curve=ECC Curve Name]]
                  [keylen=key-size]
                  [listcurves]

pktool genkeypair keystore=file
                  outkey=key_filename
                  [format=der|pem]
                  [keytype=rsa|dsa]
                  [keylen=key-size]

指定されたキーストアに鍵ペアを生成します。

import

import サブコマンドの書式は次のとおりです。

pktool import [token=token[:manuf[:serial]]]
              infile=input-fn

pktool import [keystore=pkcs11]
              infile=input-fn
              label=object-label
              [keytype=aes|arcfour|des|3des|generic]
              [sensitive=y|n]
              [extractable=y|n]
              [token=token[:manuf[:serial]]]
              [objtype=cert|key]

pktool import keystore=pkcs11
              objtype=crl
              infile=input-fn
              outcrl=output-crl-fn
              outformat=pem|der

pktool import keystore=file
              infile=input-fn
              outkey=output-key-fn
              outcert=output-key-fn
              [outformat=pem|der]

pktool import keystore=file
              objtype=crl
              infile=input-fn
              outcrl=output-crl-fn
              outformat=pem|der

証明書、鍵、または CRL を、指定の入力ファイルから指定のキーストアに読み込みます。

inittoken

inittoken サブコマンドの書式は次のとおりです。

pktool inittoken [ slotid=slot number ]
                 [ currlabel=token[:manuf[:serial]]]
                 [ newlabel=new token label ]

このコマンドは、C_InitToken API を使用して PKCS#11 トークンを初期化します。トークンを検索するには、トークンのデフォルトラベルを指定することをお勧めします。オプションで、newlabel 引数を使用すると、トークンに新しいラベルを割り当てることができます。newlabel がない場合、トークンラベルは変更されません。このコマンドを続行するために、セキュリティー責任者 (Security Officer、SO) の PIN を入力するよう求めるプロンプトが表示されます。スロット番号を取得するには、pktool トークンの出力を参照してください。

list

list サブコマンドの書式は次のとおりです。

pktool list [token=token[:manuf[:serial]]]
            [objtype=private|public|both]
            [label=label]

pktool list [keystore=pkcs11]
            [objtype=cert[:public | private | both]]
            [token=token[:manuf[:serial]]]
            [label=cert-label]
            [serial=hex-serial-number]
            [issuer=issuer-DN]
            [subject=subject-DN]

pktool list [keystore=pkcs11]
            objtype=key[:public | private | both]]
            [token=token[:manuf[:serial]]]
            [label=key-label]
            [keyvalue=y|n]

pktool list keystore=pkcs11
            objtype=crl
            infile=input-fn


pktool list keystore=file
            objtype=cert
            [infile=input-fn]
            [dir=directory-path]
            [serial=hex-serial-number]
            [issuer=issuer-DN]
            [subject=subject-DN]

pktool list keystore=file
            objtype=key
            [infile=input-fn]
            [dir=directory-path]
            [keyvalue=y|n]

証明書、鍵、または証明書失効リスト (CRL) を一覧表示します。PKCS#11 トークンの個人証明書または秘密鍵を表示すると、正しい PIN を入力して PKCS#11 トークンに対する認証を行うよう求めるプロンプトが表示されます。

setpin

setpin サブコマンドの書式は次のとおりです。

pktool setpin [ keystore=pkcs11]
       [token=token[:manuf[:serial]]]
       [usertype=user | so]

PKCS#11 トークンに対してユーザーを認証するために使用されるパスフレーズを変更します。パスフレーズには、NULL 以外の 1 - 256 文字の長さの任意の文字列を指定できます。

古いパスフレーズがある場合、setpin は、そのパスフレーズを入力するよう求めるプロンプトを表示します。古いパスフレーズが一致すると、pktool は、新しいパスフレーズを 2 回入力するよう求めるプロンプトを表示します。2 回入力した新しいパスフレーズが一致すると、それがトークンの最新のパスフレーズになります。

Sun Software PKCS#11 ソフトトークンキーストア (デフォルト) の場合は、setpin コマンドを使用してオブジェクトストアのパスフレーズを変更するときに、デフォルトのパスフレーズ changeme を古いパスフレーズとして使用する必要があります。このアクションは、パスフレーズを初期化して、新しく作成したトークンオブジェクトストアに設定するために必要です。

PKCS#11 ベースのトークンに対して usertype=so オプションを指定すると、通常ユーザーの PIN ではなく、セキュリティー責任者 (Security Officer、SO) ユーザーの PIN が変更されます。デフォルトでは、usertypeuser とみなされます。

signcsr

signcsr サブコマンドの書式は次のとおりです。

signcsr keystore=pkcs11
        signkey=label (label of key to use for signing)
        csr=CSR_filename
        serial=serial_number_hex_string_for_final_certificate
        outcert=filename_for_final_certificate
        issuer=issuer-DN
        [store=y|n] (store the new cert in on the token, default=n)
        [outlabel=certificate label]
        [format=pem|der] (certificate output format)
        [subject=subject-DN] (override the CSR subject name)
        [altname=subjectAltName,subjectAltName...] (add subjectAltName)
        [keyusage=[critical:]usage,...] (add key usage bits)
        [eku=[critical:]EKU_Name,...] (add Extended Key Usage)
        [lifetime=number-hour|number-day|number-year]
        [token=token[:manuf[:serial]]]
signcsr keystore=file
        signkey=filename
        csr=CSR_filename
        serial=serial_number_hex_string_for_final_certificate
        outcert=filename_for_final_certificate
        issuer=issuer-DN
        [dir=directory-path]
        [format=pem|der] (certificate output format)
        [subject=subject-DN] (override the CSR subject name)
        [altname=subjectAltName,subjectAltName...] (add a subjectAltName)
        [keyusage=[critical:]usage,...] (add key usage bits)
        [lifetime=number-hour|number-day|number-year]
        [eku=[critical:]EKU_Name,...] (add Extended Key Usage)
tokens

tokens サブコマンドの書式は次のとおりです。

pktool tokens

tokens サブコマンドは、表示可能なすべての PKCS#11 トークンを一覧表示します。デフォルトトークン (キーストア) は、メタスロットが有効になっている場合でも表示されます。また、メタスロットが有効になっている場合、あるいは 3 つ以上のトークンが存在する場合は、メタスロットも仮想トークンとしてリストに表示されます。

使用法

pktool サブコマンドは次のオプションをサポートします。

altname=[critical:]subjectAltName,subjectAltName...

証明書の被認証者代替名。altname オプションのあとに指定する引数は、タグ=値の形式にします。有効なタグは、IP、DNS、EMAIL、URI、DN、KRB、UPN、および RID です。altname 文字列の直前に critical: というワードを付加すると、SubjectAltName 拡張が critical としてマークされます。

クリティカルなフラグは、すべての altname で共有されるため、最初の被認証者代替名の先頭に配置してください。

altname タグ (IP、EMAIL、DN など) の区切り記号は、コンマ (,) です。DN タイプ内のコンポーネントの区切り記号は、セミコロン (;) です。

Example 1: Add an IP address to the subjectAltName extension. altname="IP=1.2.3.4" Example 2: Add an email address to the subjectAltName extension, and mark it as being critical. altname="critical:EMAIL=first.last@example.com"

例 3: 複数の被認証者代替名 IP アドレス、メールアドレス、および識別名を subjectAltName 拡張に追加し、クリティカルのマークを付けます。

altname="critical:IP=1.2.3.4,EMAIL=first.last@example.com,\
DN=C=US;O=Oracle;OU=Security;CN=John Smith"
currlabel=token label

このオプションは、inittoken コマンドとのみ使用できます。これは、初期化するデフォルトトークンを見つけるために使用します。使用するトークン名の書式についての詳細は、token オプションを参照してください。

curve=Elliptic_Curve_Name

このオプションは、X.509 証明書または証明書署名要求を生成する場合、または楕円曲線の鍵ペアを生成する場合に使用される楕円曲線パラメータを指定します。

次の曲線名がサポートされています。

secp112r1, secp112r2, secp128r1, secp128r2, secp160k1
secp160r1, secp160r2, secp192k1, secp192r1, secp224k1
secp224r1, secp256k1, secp256r1, secp384r1, secp521r1
sect113r1, sect113r2, sect131r1, sect131r2, sect163k1
sect163r1, sect163r2, sect193r1, sect193r2, sect233k1
sect233r1, sect239k1, sect283k1, sect283r1, sect409k1
sect409r1, sect571k1, sect571r1, c2pnb163v1, c2pnb163v2
c2pnb163v3, c2pnb176v1, c2tnb191v1, c2tnb191v2, c2tnb191v3
c2pnb208w1, c2tnb239v1, c2tnb239v2, c2tnb239v3, c2pnb272w1
c2pnb304w1, c2tnb359v1, c2pnb368w1, c2tnb431r1, prime192v2
prime192v3

曲線名の一覧は、gencertgencsr、または genkeypair サブコマンドで listcurves オプションを使用した場合にも表示されます。

dir=directory_path

要求したオブジェクトが格納されている OpenSSL キーストアディレクトリを指定します。signcsr サブコマンドをファイルベースのキーストアに適用した場合、このオプションは証明書の発行者が存在するディレクトリを指定します。デフォルトは現在のディレクトリです。

eku=[critical:]EKU_Name,[critical:]EKU_Name, ...]

証明書または証明書要求に追加する X.509v3 拡張の拡張鍵用途の値を指定します。

Specify EKU_Name as one of the following: serverAuth, clientAuth, codeSigning, emailProtection, ipsecEndSystem, ipsecTunnel, ipsecUser, timeStamping, OCSPSigning, KPClientAuth, KPKdc, or scLogon.

An example is:

eku=KPClientAuth,clientAuth
extractable=y | n

PKCS#11 トークン内に生成される対称鍵を抽出可能にするかどうかを指定します。有効な値は y および n です。デフォルト値は y です。

format=pem | der | pkcs12

gencert サブコマンドの場合、このオプションは OpenSSL などファイルベースのキーストアにのみ適用されます。このオプションは、作成される鍵ファイルまたは証明書ファイルの出力形式を指定するために使用します。有効な書式は pem または der です。デフォルトの書式は pem です。

gencsr サブコマンドの場合、このオプションは CSR ファイルの出力エンコード形式を指定します。有効な書式は pem または der です。デフォルトの書式は pem です。

hash=md5 | sha1 | sha224 | sha256 | sha384 | sha512

gencert および gencsr サブコマンドの場合、このオプションを使用すると、呼び出し側は X.509 証明書の署名を生成するために使用するハッシュアルゴリズムを指定できます。このオプションは、PKCS#11 のキーストアを使用して EC または RSA ベースの証明書を作成するときに使用できます。OpenSSL のファイルベースのキーストアを使用する場合、楕円曲線はサポートされません。

infile=input-fn

list および delete サブコマンドで objtype=cert および keystore=file の場合、これらのサブコマンドの証明書ファイル名を指定します。import サブコマンドの場合、インポートするファイル名を指定します。Specifies the input CRL filename for list, delete and import subcommands when objtype=crl.

issuer=issuer-DN

証明書の発行者を指定します。

keylen=key-size

生成する秘密鍵または対称鍵のサイズ (ビット数) を指定します。

gencert および gencsr サブコマンドの場合、デフォルトの鍵長は 2048 ビットです。

genkey サブコマンドの場合、AES アルゴリズムを使用して生成する対称鍵の最小ビット数と最大ビット数は、それぞれ 128256 です。ARCFOUR アルゴリズムを使用する場合の最小ビット数と最大ビット数は、それぞれ 82048 です。一般的な秘密鍵の場合、最小ビット数は 8 で最大ビット数は任意です。AES、ARCFOUR、または一般的な秘密鍵のデフォルトの鍵長は 128 です。DES 鍵または 3DES 鍵の場合、鍵長は固定であるため、このオプションを指定しても無視されます。

keystore=pkcs11 | file

基本となるキーストアのタイプ (PKCS#11 トークン、またはファイルベースのプラグイン) を指定します。

keytype=rsa | dsa | ec | aes | arcfour | des | 3des | generic

生成する秘密鍵または対称鍵のタイプを指定します。

gencert および gencsr サブコマンドの場合、有効な秘密鍵のタイプは rsaec, 、または dsa です。デフォルトの鍵のタイプは rsa です。

genkey サブコマンドの場合、有効な対称鍵のタイプは aesarcfourdes3des、または generic です。デフォルトの鍵のタイプは aes です。

keyusage=[critical:]usage,usage,usage,...
Key Usage strings:
* digitalSignature
* nonRepudiation
* keyEncipherment
* dataEncipherment
* keyAgreement
* keyCertSign
* cRLSign
* encipherOnly
* decipherOnly

例 1: cert (または csr) を使用して証明書または CRL 以外のデータを署名および検証するため (digitalSignature)、および暗号化鍵以外のデータを暗号化および復号化するため (dataEncipherment) に使用できるように KeyUsage を設定する: keyusage=digitalSignature,dataEncipherment

例 2: 上記 (例 1) と同じであるが、さらに critical ビットを設定する: keyusage=critical:digitalSignature,dataEncipherment

keyvalue=y | n

このオプションは、ファイルベースおよび PKCS#11 鍵ストア内の対称鍵の鍵値を 16 進数形式で表示します。有効な値は y および n です。デフォルト値は n です。

label=key-label | cert-label

gencert サブコマンドの場合、このオプションは、PKCS#11 トークン内の秘密鍵と自己署名証明書のラベルを指定します。

gencsr サブコマンドの場合、このオプションは、PKCS#11 トークン内の秘密鍵のラベルを指定します。

list サブコマンドでは、このオプションは、リストを絞り込む PKCS#11 トークン内の X.509 証明書 (objtype=cert の場合) または非公開鍵 (objtype=key の場合) のラベルを指定します。

delete サブコマンドでは、このオプションは、指定されたオブジェクトを PKCS#11 トークンから削除する X.509 証明書 (objtype=cert の場合) または非公開鍵 (objtype=key の場合) のラベルを指定します。

listcurves

サポートされている楕円曲線名の一覧を表示します。このオプションは、gencertgencsr、または genkeypair サブコマンドでのみ使用できます。

lifetime=number-hour|number-day|number-year

証明書の有効期間を指定します。証明書の有効期間は、number-hournumber-day、または number-year で指定できます。指定できる書式は 1 つだけです。デフォルトは 1-year です。たとえば、このオプションは、lifetime=1-hour、lifetime=2-day、lifetime=3-year のようになります。

newlabel=token label

このオプションは、inittoken コマンドとのみ使用できます。これは、初期化するトークンに割り当てられたラベルを変更するために使用します。使用するトークン名の書式についての詳細は、token オプションを参照してください。

nickname=cert-nickname

PKCS#11 トークンの場合、これは gencert コマンドの「label」オプションの代替として使用できます。

objtype=cert | key | crl

Specifies the class of the object: cert, key, or crl.download サブコマンドの場合、このオプションを指定しないと、デフォルトの crl が使用されます。

objtype=public | private | both

オブジェクトのタイプ (非公開オブジェクトまたは公開オブジェクト、あるいはその両方) を指定します。このオプションは、list および delete サブコマンドで objtype=key と指定した場合の PKCS#11 トークンにのみ適用されます。デフォルト値は public です。

list サブコマンドの場合、label オプションをこのオプションと組み合わせると、鍵のリストをさらに絞り込むことができます。delete サブコマンドの場合、このオプションを使用すると、削除する鍵を公開鍵または秘密鍵だけに絞り込むことができます。また、label オプションを省略すれば、すべての公開鍵、すべての非公開鍵、または両方のタイプのすべての鍵、を削除対象にできます。objtype パラメータの選択肢として publicprivate、および both を使用できるのは PKCS#11 キーストアの場合だけですが、これは、以前のバージョンの pktool コマンドとの互換性を維持するためです。

outcert=cert-fn

書き込み先の出力証明書ファイル名を指定します。このオプションは、OpenSSL などファイルベースのプラグインに対して指定する必要があります。このオプションともに、outkey=key-fn オプションも指定する必要があります。

outcrl=output-crl-fn

書き込み先の出力 CRL ファイル名を指定します。

outcsr=csr-fn

書き込み先の出力 CSR ファイル名を指定します。

outfile=output-fn

export サブコマンドの場合、このオプションは、作成される出力ファイル名を指定します。import サブコマンドの場合、このオプションは、証明書または CRL の出力ファイル名を指定します。OpenSSL などファイルベースのプラグインにのみ適用されます。download サブコマンドの場合、このオプションを指定しないと、ダウンロードされたファイルの名前は URL 文字列のベース名になります。

outformat=pem | der | pkcs12

import サブコマンドの場合、このオプションは、指定した PKCS#12 ファイルからファイルベースのプラグインに抽出される証明書または鍵の出力形式を指定します。有効な値は pem または der です。The default is pem.CRL を CRL ファイルベースのキーストアにインポートする場合、このオプションは、CRL の出力形式を指定します。有効な値は pem または der です。デフォルトは der です。export サブコマンドの場合、このオプションは、作成される指定の出力ファイルの形式を指定します。サポートされている書式は、pemder、または pkcs12 です。デフォルトは pkcs12 です。

outkey=key-fn

書き込み先の出力秘密鍵ファイル名を指定します。このオプションは、ファイルベースのキーストアを使用する場合にのみ必要です。

print=y | n

このオプションは genkey サブコマンドで使用され、PKCS11 キーストアとファイルベースのキーストアに適用されます。print=y の場合、genkey サブコマンドは、生成された鍵の鍵値を 16 進数で 1 行に出力します。デフォルト値は n です。PKCS11 キーストアの場合、sensitive=y または extractable=n と指定して対称鍵を作成すると、print オプションを y に設定していても鍵値は表示されません。鍵は作成されますが、「cannot reveal the key value」という警告が表示されます。

rfc2986attr=y | n

「属性」を空の ASN.1 構造「SET OF」としてエンコードするかどうかを指定します。有効な値は y および n です。デフォルト値は、pktool が PKCS#10 標準 (RFC 2986) に準拠することを示す y です。一部の古い壊れた認証局では、n の指定が要求されることがあります。

sensitive=y | n

PKCS#11 トークン内に生成される対称鍵を機密扱いするかどうかを指定します。有効な値は y および n です。デフォルト値は n です。

serial=hex-serial-number

証明書に対して一意のシリアル番号を指定します。シリアル番号は 16 進数値で指定する必要があります。例: 0x0102030405060708090a0b0c0d0e0f

slotid=slot number

トークンのインタフェースになるスロットの ID を指定します。slotid は変わる可能性があります。これが起こる可能性があるのは、cryptoadm コマンドでトークンプロバイダを変更、追加、または削除した場合です。詳細は、cryptoadm(8) のマニュアルページを参照してください。

そのため、slotid= の代わりに label= を使ってトークンプロバイダを特定することをお勧めします。トークンラベルは、pktool tokens 出力の「Token Name」列の下に表示されます。

subject=subject-DN

証明書または証明書要求に対して特定の証明書所有者を指定します。subject= の設定例を次に示します。

subject=O=Sun Microsystems Inc., \
OU=Solaris Security Technologies Group, \
L=Ashburn, ST=VA, C=US, CN=John Smith
token=token[:manuf[:serial]]

トークンラベルの末尾にスペースがある場合でも、このオプションではユーザーがスペースを入力する必要はありません。

コロンで区切られたトークン識別文字列です (token:manuf:serial)。いずれかの部分に文字として : を含める場合、バックスラッシュ (\) を使用してエスケープする必要があります。: がない場合、文字列全体 (最大 32 文字) がトークンラベルとみなされます。: が 1 つだけある場合、文字列はトークンラベルと作成者となります。keystore=pkcs11 と指定した場合、このオプションを指定しないと、デフォルトで pkcs11_softtoken が使用されます。

usertype=user | so

setpin コマンドの実行対象となるユーザーのタイプを指定します。デフォルトは標準ユーザーですが、so を指定すると、トークンのセキュリティー責任者の PIN を設定できます。

url=url_string

CRL または証明書ファイルをダウンロードするための URL を指定します。

http_proxy=proxy_str

プロキシサーバーのホスト名とポート番号を指定します。書式は http://hostname[:port] または hostname[:port] です。このオプションを指定しないと、download サブコマンドは http_proxy 環境変数をチェックします。コマンド行オプションが環境変数よりも優先されます。

使用例 1 自己署名証明書の生成

次の例では、証明書を作成し、コマンドで指定したキーストアに格納しています。

$ pktool gencert keystore=pkcs11 label=WebServerCert \
       subject="O=Example Company Inc., OU=Security Technologies Group, \
       L=Ashburn, ST=VA, C=US, CN=John Smith" serial=0x01 \
       keytype=rsa keylen=2048 hash=sha512
使用例 2 証明書署名要求を生成する

次の例では、CSR を作成し、コマンドで指定したキーストアに格納しています。

$ pktool gencsr keystore=pkcs11 subject="O=Example Company Inc., \
     OU=HR Department, L=Ashburn, ST=VA, C=US, CN=John Smith" \
     keytype=rsa keylen=2048 hash=sha256 outcsr=csr.dat \
     label=TestCert
使用例 3 証明書をインポートする

次の例では、証明書オブジェクトを指定の入力ファイルからコマンドで指定したキーストアにインポートしています。

$ pktool import keystore=pkcs11 objtype=cert infile=mycert.pem \
      label=mycert

終了ステータス

次の終了ステータスが返されます。

0

正常終了。

> 0

An error occurred.

属性

属性についての詳細は、マニュアルページの attributes(7) を参照してください。

属性タイプ
属性値
使用条件
system/core-os
インタフェースの安定性
下記を参照

list サブコマンドに keystore=[file|pkcs11] objtype=key keyvalue=y|n を指定する場合のコマンド呼び出しおよび解析可能な出力は「確実」です。ほかのすべての出力は非インタフェースです。

関連項目

attributes(7), pkcs11_softtoken(7)

OASIS PKCS#11 v2.40 specification

https://www.oasis-open.org/committees/pkcs11/

RSA PKCS#12 v1.0

https://tools.ietf.org/html/rfc7292

SECG Recommended Elliptic Curve Domain Parameters

https://www.secg.org/