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

印刷ビューの終了

更新: 2016年12月6日
 
 

pktool(1)

名前

pktool - 証明書と鍵の管理

形式

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

説明

pktool コマンドを使用すると、PKCS#11 トークン (暗号化フレームワーク)、Netscape Security Services (NSS) トークン、および 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=nss
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):Sun Microsystems Inc.
Organizational Unit Name (eg, section):OPG
Common Name (eg, YOUR name):John Smith
 Email Address []: john.smith@sun.com

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


"C=US, ST=CA, L=Menlo Park, O=Sun Microsystems Inc.,\
   OU=OPG, emailAddress=john.smith@sun.com, \
   CN=John Smith"

サブコマンド

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

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=nss
              objtype=cert
              [subject=subject-DN]
              [issuer=issuer-DN]
              [serial=hex-serial-number]
              [nickname=cert-nickname]
              [token=token[:manuf[:serial]]]
              [dir=directory-path]
              [prefix=DBprefix]

pktool delete keystore=nss
              objtype=crl
              [nickname=cert-nickname]
              [subject=subject-DN]
              [token=token[:manuf[:serial]]]
              [dir=directory-path]
              [prefix=DBprefix]

pktool delete keystore=nss
              objtype=key 
              [token=token[:manuf[:serial]]] 
              [dir=directory-path] 
              [prefix=DBprefix] 
              [nickname=key-nickname] 
              [keyvalue=value-in-hex]

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=nss
              outfile=output-fn
              [subject=subject-DN]
              [issuer=issuer-DN]
              [serial=hex-serial-number]
              [nickname=cert-nickname]
              [token=token[:manuf[:serial]]]
              [dir=directory-path]
              [prefix=DBprefix]
              [outformat=pem|der|pkcs12]

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

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

gencert

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


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

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 です。この規則の唯一の例外は、keystore=nss keytype=dsa の組み合わせです。NSS は DSA 鍵での SHA-2 ハッシュの使用をサポートしていないため、gencert コマンドは、keystore=nss keytype=dsa の組み合わせのデフォルトハッシュとして SHA-1 を使用します。

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

gencsr

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


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

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 です。この規則の唯一の例外は、keystore=nss keytype=dsa の組み合わせです。NSS は DSA 鍵での SHA-2 ハッシュの使用をサポートしていないため、gencert コマンドは、keystore=nss keytype=dsa の組み合わせのデフォルトハッシュとして SHA-1 を使用します。

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=nss
              label=key-label
              [keytype=aes|arcfour|des|3des|generic]
              [keylen=key-size (for aes, arcfour, or \
                  generic keytypes only)]
              [token=token[:manuf[:serial]]]
              [dir=directory-path]
              [prefix=DBprefix]

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=nss
                  label=key-nickname
                  [token=token[:manuf[:serial]]]
                  [dir=directory-path]
                  [prefix=DBprefix]
                  [keytype=rsa|dsa|ec [curve=ECC Curve Name]]
                  [keylen=key-size]
                  [listcurves]

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=nss
              objtype=cert
              infile=input-fn
              label=cert-label
              [token=token[:manuf[:serial]]]
              [dir=directory-path]
              [prefix=DBprefix]
              [trust=trust-value]

pktool import keystore=nss
              objtype=crl
              infile=input-fn
              [verifycrl=y|n]
              [token=token[:manuf[:serial]]]
              [dir=directory-path]
              [prefix=DBprefix]

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=nss
            objtype=cert
            [subject=subject-DN]
            [issuer=issuer-DN]
            [serial=hex-serial-number]
            [nickname=cert-nickname]
            [token=token[:manuf[:serial]]]
            [dir=directory-path]
            [prefix=DBprefix]

pktool list keystore=nss
            objtype=key
            [token=token[:manuf[:serial]]]
            [dir=directory-path]
            [prefix=DBprefix]
            
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=nss
       [token=token]
       [dir=directory-path]
       [prefix=DBprefix]

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

PKCS#11 または NSS トークンに対してユーザーを認証するために使用されるパスフレーズを変更します。パスフレーズには、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 NSS DB, default=n)
        [outlabel=certificate label]
        [dir=directory-path]
        [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
        [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)
signcsr keystore=nss
        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 NSS DB, default=n)
        [outlabel=certificate label]
        [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)
        [eku=[critical:]EKU_Name,...] (add Extended Key Usage)
        [lifetime=number-hour|number-day|number-year]
        [token=token[:manuf[:serial]]]
        [dir=directory-path]
        [prefix=DBprefix]
tokens

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


pktool tokens

tokens サブコマンドは、表示可能なすべての PKCS#11 トークンを一覧表示します。

rfc2986attr=y | n

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

-?

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


pktool -?
pktool --help

–? オプションを使用すると、使用方法やヘルプ情報を表示できます。–help の機能は –? と同じです。

使用法

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

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

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

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

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

例 1: subjectAltName 拡張に IP アドレスを追加する: altname="IP=1.2.3.4" 例 2: subjectAltName 拡張に電子メールアドレスを追加し、critical としてマークする: altname="critical:EMAIL=first.last@company.com"

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

altname="critical:IP=1.2.3.4,EMAIL=first.last@company.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

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

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

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

EKU_Name には、serverAuthclientAuthcodeSigningemailProtectionipsecEndSystemipsecTunnelipsecUsertimeStampingOCSPSigningKPClientAuthKPKdc、または scLogon のいずれかを指定します。

例:

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 証明書の署名を生成するために使用するハッシュアルゴリズムを指定できます。このオプションは、NSS または PKCS#11 のキーストアを使用して EC または RSA ベースの証明書を作成するときに使用できます。OpenSSL のファイルベースのキーストアを使用する場合、楕円曲線はサポートされません。

infile=input-fn

list および delete サブコマンドで objtype=cert および keystore=file の場合、これらのサブコマンドの証明書ファイル名を指定します。import サブコマンドの場合、インポートするファイル名を指定します。listdelete、および import サブコマンドで objtype=crl の場合、これらのサブコマンドの入力 CRL ファイル名を指定します。

issuer=issuer-DN

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

keylen=key-size

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

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

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

keystore=nss | pkcs11 | file

基本となるキーストアのタイプ (NSS トークン、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=key の場合) または秘密鍵 (objtype=cert の場合) のラベルを指定して、一覧を絞り込みます。

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

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

gencert サブコマンドの場合、このオプションを使用して、NSS キーストアの証明書のニックネームを指定する必要があります。

list サブコマンドの場合、このオプションは、内容を表示する NSS トークン内の証明書のニックネームを指定します。delete サブコマンドの場合、NSS トークンから CRL を削除するには、このオプションを使用して発行者の証明書のニックネームを指定します。delete サブコマンドで NSS トークンから証明書を削除する場合、このオプションは証明書のニックネームを指定します。import サブコマンドの場合、指定した入力ファイルを NSS トークンにインポートするには、このオプション使用して、生成される証明書のニックネームを指定する必要があります。

objtype=cert | key | crl

オブジェクトのクラス (certkey、または crl) を指定します。download サブコマンドの場合、このオプションを指定しないと、デフォルトの crl が使用されます。

objtype=public | private | both

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

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

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 です。デフォルトは pem です。CRL を CRL ファイルベースのキーストアにインポートする場合、このオプションは、CRL の出力形式を指定します。有効な値は pem または der です。デフォルトは der です。export サブコマンドの場合、このオプションは、作成される指定の出力ファイルの形式を指定します。サポートされている書式は、pemder、または pkcs12 です。デフォルトは pkcs12 です。

outkey=key-fn

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

prefix=DBprefix

NSS データベースの接頭辞を指定します。このオプションは NSS トークンにのみ適用されます。

print=y | n

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

sensitive=y | n

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

serial=hex-serial-number

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

slotid=slot number

トークンのインタフェースになるスロットの ID を指定します。

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=nss と指定した場合、このオプションを指定しないと、デフォルトで NSS 内部トークンが使用されます。keystore=pkcs11 と指定した場合、このオプションを指定しないと、デフォルトで pkcs11_softtoken が使用されます。

trust=trust-value

証明書の信頼属性を指定します。これは NSS 証明書専用であり、標準の NSS 構文が適用されます。

usertype=user | so

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

url=url_string

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

verifycrl=y | n

CRL を NSS キーストアにインポートする場合、このオプションは、CRL の検証を実行するかどうかを指定します。有効な値は y および n です。デフォルト値は n です。

http_proxy=proxy_str

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

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

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


 $ pktool gencert keystore=nss nickname=WebServerCert \
       subject="O=Sun Microsystems Inc., OU=Solaris Security Technologies Group, \
       L=Ashburn, ST=VA, C=US, CN=John Smith" dir=/etc/certs \
       keytype=rsa keylen=2048 hash=sha512


使用例 2 証明書署名要求を生成する

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


 $ pktool gencsr keystore=nss subject="O=Sun Microsystems Inc., \
       OU=Solaris Security Technologies Group, L=Ashburn, ST=VA, C=US, \
       CN=John Smith" keytype=rsa keylen=2048 hash=sha256 outcsr=csr.dat
 
使用例 3 証明書をインポートする

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


 $ pktool import keystore=nss objtype=cert infile=mycert.pem \
       nickname=mycert

終了ステータス

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

0

正常終了。

>0

エラーが発生した。

属性

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

属性タイプ
属性値
使用条件
system/core-os
インタフェースの安定性
確実

関連項目

attributes(5), pkcs11_softtoken(5)

SECG Recommended Elliptic Curve Domain Parameters http://www.secg.org