JavaScript is required to for searching.
跳过导航链接
退出打印视图
手册页第 1 部分:用户命令     Oracle Solaris 11 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

简介

用户命令

acctcom(1)

adb(1)

addbib(1)

admin(1)

alias(1)

allocate(1)

amt(1)

appcert(1)

apptrace(1)

apropos(1)

ar(1)

arch(1)

as(1)

asa(1)

at(1)

atq(1)

atrm(1)

audioconvert(1)

audioctl(1)

audioplay(1)

audiorecord(1)

audiotest(1)

auths(1)

auto_ef(1)

awk(1)

banner(1)

basename(1)

basename(1B)

batch(1)

bc(1)

bdiff(1)

bfs(1)

bg(1)

biff(1B)

break(1)

builtin(1)

cal(1)

calendar(1)

case(1)

cat(1)

cd(1)

cdc(1)

cdrw(1)

chdir(1)

checkeq(1)

checknr(1)

chgrp(1)

chkey(1)

chmod(1)

chown(1)

chown(1B)

ckdate(1)

ckgid(1)

ckint(1)

ckitem(1)

ckkeywd(1)

ckpath(1)

ckrange(1)

ckstr(1)

cksum(1)

cktime(1)

ckuid(1)

ckyorn(1)

clear(1)

cmp(1)

col(1)

comb(1)

comm(1)

command(1)

compress(1)

continue(1)

cp(1)

cpio(1)

cpp(1)

cputrack(1)

crle(1)

crontab(1)

csh(1)

csplit(1)

ct(1C)

ctags(1)

ctrun(1)

ctstat(1)

ctwatch(1)

cu(1C)

cut(1)

date(1)

dc(1)

deallocate(1)

decrypt(1)

delta(1)

deroff(1)

df(1B)

dhcpinfo(1)

diff(1)

diff3(1)

diffmk(1)

digest(1)

digestp(1)

dircmp(1)

dirname(1)

dirs(1)

dis(1)

disown(1)

dispgid(1)

dispuid(1)

dos2unix(1)

dpost(1)

du(1)

du(1B)

dump(1)

dumpcs(1)

dumpkeys(1)

echo(1)

echo(1B)

ed(1)

edit(1)

egrep(1)

eject(1)

elfdump(1)

elfedit(1)

elffile(1)

elfsign(1)

elfwrap(1)

encrypt(1)

enhance(1)

env(1)

eqn(1)

errange(1)

errdate(1)

errgid(1)

errint(1)

erritem(1)

error(1)

errpath(1)

errstr(1)

errtime(1)

erruid(1)

erryorn(1)

eval(1)

ex(1)

exec(1)

exit(1)

expand(1)

export(1)

exportfs(1B)

expr(1)

expr(1B)

exstr(1)

factor(1)

false(1)

fastboot(1B)

fasthalt(1B)

fc(1)

fg(1)

fgrep(1)

file(1)

file(1B)

filebench(1)

filep(1)

filesync(1)

filofaxp(1)

find(1)

finger(1)

fmt(1)

fmtmsg(1)

fold(1)

for(1)

foreach(1)

franklinp(1)

from(1B)

ftp(1)

function(1)

gcore(1)

gencat(1)

geniconvtbl(1)

genmsg(1)

get(1)

getconf(1)

getfacl(1)

getlabel(1)

getopt(1)

getoptcvt(1)

getopts(1)

gettext(1)

gettxt(1)

getzonepath(1)

glob(1)

goto(1)

gprof(1)

grep(1)

groups(1)

groups(1B)

grpck(1B)

hash(1)

hashcheck(1)

hashmake(1)

hashstat(1)

head(1)

helpdate(1)

helpgid(1)

helpint(1)

helpitem(1)

helppath(1)

helprange(1)

helpstr(1)

helptime(1)

helpuid(1)

helpyorn(1)

hist(1)

history(1)

hostid(1)

hostname(1)

i386(1)

i486(1)

iconv(1)

idnconv(1)

if(1)

indxbib(1)

install(1B)

ipcrm(1)

ipcs(1)

isainfo(1)

isalist(1)

jobs(1)

join(1)

jsh(1)

kbd(1)

kdestroy(1)

keylogin(1)

keylogout(1)

kill(1)

kinit(1)

klist(1)

kmdb(1)

kmfcfg(1)

kpasswd(1)

krb5-config(1)

ksh(1)

ksh88(1)

ksh93(1)

ktutil(1)

lari(1)

last(1)

lastcomm(1)

ld(1)

ldapadd(1)

ldapdelete(1)

ldaplist(1)

ldapmodify(1)

ldapmodrdn(1)

ldapsearch(1)

ldd(1)

ld.so.1(1)

let(1)

lex(1)

lgrpinfo(1)

limit(1)

line(1)

list_devices(1)

listusers(1)

llc2_autoconfig(1)

llc2_config(1)

llc2_stats(1)

ln(1)

ln(1B)

loadkeys(1)

locale(1)

localedef(1)

logger(1)

logger(1B)

login(1)

logname(1)

logout(1)

look(1)

lookbib(1)

lorder(1)

ls(1)

ls(1B)

m4(1)

mac(1)

mach(1)

machid(1)

madv.so.1(1)

mail(1)

Mail(1B)

mail(1B)

mailcompat(1)

mailp(1)

mailq(1)

mailstats(1)

mailx(1)

make(1S)

makekey(1)

man(1)

mconnect(1)

mcs(1)

mdb(1)

mesg(1)

mkdir(1)

mkmsgs(1)

mkstr(1B)

mktemp(1)

moe(1)

more(1)

mp(1)

mpss.so.1(1)

msgcc(1)

msgcpp(1)

msgcvt(1)

msgfmt(1)

msggen(1)

msgget(1)

mt(1)

mv(1)

nawk(1)

nc(1)

ncab2clf(1)

ncakmod(1)

neqn(1)

netcat(1)

newform(1)

newgrp(1)

newsp(1)

newtask(1)

nice(1)

nl(1)

nm(1)

nohup(1)

notify(1)

nroff(1)

od(1)

on(1)

onintr(1)

optisa(1)

pack(1)

page(1)

pagesize(1)

pam_tty_tickets.so(1)

pargs(1)

passwd(1)

paste(1)

patch(1)

pathchk(1)

pax(1)

pcat(1)

pcred(1)

perl(1)

pfbash(1)

pfcsh(1)

pfexec(1)

pfiles(1)

pfksh(1)

pflags(1)

pfsh(1)

pftcsh(1)

pfzsh(1)

pg(1)

pgrep(1)

pkcs11_inspect(1)

pkginfo(1)

pkgmk(1)

pkgparam(1)

pkgproto(1)

pkgtrans(1)

pkill(1)

pklogin_finder(1)

pktool(1)

plabel(1)

pldd(1)

plgrp(1)

plimit(1)

pmadvise(1)

pmap(1)

popd(1)

ppgsz(1)

ppriv(1)

pr(1)

praliases(1)

prctl(1)

preap(1)

print(1)

printenv(1B)

printf(1)

priocntl(1)

proc(1)

prof(1)

profiles(1)

projects(1)

prs(1)

prt(1)

prun(1)

ps(1)

ps(1B)

psig(1)

pstack(1)

pstop(1)

ptime(1)

ptree(1)

pushd(1)

pvs(1)

pwait(1)

pwd(1)

pwdx(1)

ranlib(1)

rcapstat(1)

rcp(1)

read(1)

readonly(1)

red(1)

refer(1)

regcmp(1)

rehash(1)

remote_shell(1)

remsh(1)

renice(1)

repeat(1)

reset(1B)

return(1)

rksh(1)

rksh88(1)

rlogin(1)

rm(1)

rmail(1)

rmdel(1)

rmdir(1)

rmformat(1)

rmmount(1)

rmumount(1)

roffbib(1)

roles(1)

rpcgen(1)

rpm2cpio(1)

rsh(1)

runat(1)

rup(1)

rup(1C)

ruptime(1)

rusage(1B)

rusers(1)

rwho(1)

sact(1)

sar(1)

sccs(1)

sccs-admin(1)

sccs-cdc(1)

sccs-comb(1)

sccs-delta(1)

sccsdiff(1)

sccs-get(1)

sccs-help(1)

sccshelp(1)

sccs-prs(1)

sccs-prt(1)

sccs-rmdel(1)

sccs-sact(1)

sccs-sccsdiff(1)

sccs-unget(1)

sccs-val(1)

scp(1)

script(1)

sdiff(1)

sed(1)

sed(1B)

select(1)

set(1)

setenv(1)

setfacl(1)

setlabel(1)

setpgrp(1)

settime(1)

sftp(1)

sh(1)

shcomp(1)

shell_builtins(1)

shift(1)

shutdown(1B)

size(1)

sleep(1)

soelim(1)

sort(1)

sortbib(1)

sotruss(1)

source(1)

sparc(1)

spell(1)

spellin(1)

split(1)

srchtxt(1)

ssh(1)

ssh-add(1)

ssh-agent(1)

ssh-http-proxy-connect(1)

ssh-keygen(1)

ssh-keyscan(1)

ssh-socks5-proxy-connect(1)

stop(1)

strchg(1)

strconf(1)

strings(1)

strip(1)

stty(1)

stty(1B)

sum(1)

sum(1B)

sun(1)

suspend(1)

svcprop(1)

svcs(1)

switch(1)

symorder(1)

sys-suspend(1)

sysV-make(1)

t300(1)

t300s(1)

t4014(1)

t450(1)

tabs(1)

tail(1)

talk(1)

tar(1)

tbl(1)

tcopy(1)

tee(1)

tek(1)

telnet(1)

test(1)

test(1B)

tftp(1)

time(1)

timemanp(1)

times(1)

timesysp(1)

timex(1)

tip(1)

touch(1)

touch(1B)

tplot(1)

tput(1)

tr(1)

tr(1B)

trap(1)

troff(1)

true(1)

truss(1)

tset(1B)

tsort(1)

tty(1)

type(1)

typeset(1)

ul(1)

ulimit(1)

umask(1)

unalias(1)

uname(1)

uncompress(1)

unexpand(1)

unget(1)

unhash(1)

unifdef(1)

uniq(1)

units(1)

unix2dos(1)

unlimit(1)

unpack(1)

unset(1)

unsetenv(1)

until(1)

updatehome(1)

uptime(1)

userattr(1)

users(1B)

uucp(1C)

uudecode(1C)

uuencode(1C)

uuglist(1C)

uulog(1C)

uuname(1C)

uupick(1C)

uustat(1C)

uuto(1C)

uux(1C)

vacation(1)

val(1)

valdate(1)

valgid(1)

valint(1)

valpath(1)

valrange(1)

valstr(1)

valtime(1)

valuid(1)

valyorn(1)

vc(1)

vedit(1)

ver(1)

vgrind(1)

vi(1)

view(1)

vipw(1B)

volcheck(1)

volrmmount(1)

w(1)

wait(1)

wc(1)

what(1)

whatis(1)

whence(1)

whereis(1B)

which(1)

while(1)

who(1)

whoami(1B)

whocalls(1)

whois(1)

write(1)

xargs(1)

xgettext(1)

xstr(1)

yacc(1)

yes(1)

ypcat(1)

ypmatch(1)

yppasswd(1)

ypwhich(1)

zcat(1)

zlogin(1)

zonename(1)

zonestat(1)

pktool

- 管理证书和密钥

用法概要

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

描述

使用 pktool 命令,用户可以管理多个密钥库中的证书和密钥,包括 PKCS#11 令牌(即,加密框架)、Netscape 安全服务 (Netscape Security Services, NSS) 令牌以及 OpenSSL 的基于标准文件的密钥库。

pktool 还支持列出、删除和导入证书撤销列表 (Certificate Revocation List, CRL)。pktool 不支持创建 CRL、签署 CRL 或导出 CRL。对 PKCS#11 密钥库的 CRL 支持是基于文件的。

选项

支持以下命令选项:

-f option_file

允许用户在文件中设置选项,而不是在命令行上输入选项。

提供此选项是为了方便用户,因为使用 pktool 时可能需要在命令行上指定大量子命令及相关选项。

option_file 的格式是每行一个选项或值对。

下面是 option_file 的一个示例:

list
keystore=nss
dir=/export/foo
objtype=key
-i

允许用户以交互方式为 gencertgencsr 子命令指定 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=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
              

删除证书、密钥或证书撤销列表 (certificate revocation list, 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]
              [keyusage=[critical:]usage,usage...]
              [token=token[:manuf[:serial]]]
              [dir=directory-path]
              [prefix=DBprefix]
              [keytype=rsa | ec [curve=ECC Curve Name] \
                 [hash= md5 | sha1 | 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]
              [keyusage=[critical:]usage,usage...]
              [token=token[:manuf[:serial]]]
              [ keytype=rsa | ec [curve=ECC Curve Name] \
                  [hash=md5 | sha1 | sha256 | sha384 | sha512]]
              [ keytype=dsa [hash=sha1 | 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]
              [keyusage=[critical:]usage,usage...]
              [format=der|pem]
              [ keytype=rsa [hash=md5 | sha1 | sha256 | sha384 | sha512]]
              [ keytype=dsa [hash=sha1 | sha256 ]]
              [keylen=key-size]
              [eku=[critical:]EKU_name,...]
                [lifetime=number-hour|number-day|number-year]

生成一个自签名证书并将该证书及相关私钥安装到指定的密钥库。

对于基于令牌的密钥库,gencert 会提示用户输入 PIN。

gencsr

gencsr 子命令的格式如下所示:

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

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

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

创建 PKCS#10 证书签名请求 (certificate signing request, CSR) 文件。可以将该 CSR 发送给颁证机构 (Certifying Authority, CA) 进行签名。对于基于令牌的密钥库,gencsr 子命令会提示用户输入 PIN。

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,然后此命令才能继续执行。

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]

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]

列出证书、密钥或证书撤销列表 (certificate revocation list, 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 令牌表明用户身份的口令短语。口令短语可以是长度为 1 到 256 之间且不含空值的字符串。

setpin 提示用户输入旧口令短语(如果有)。如果旧口令短语匹配,pktool 将提示用户输入新口令短语两次。如果两次输入的新口令短语匹配,它将成为该令牌的当前口令短语。

对于 Sun Software PKCS#11 softtoken 密钥库(缺省),用户在使用 setpin 命令来更改对象存储的口令短语时,必须使用缺省口令短语 changeme 作为旧口令短语。在初始化新创建的令牌对象存储并为其设置口令短语时,需要执行此操作。

如果为基于 PKCS#11 的令牌指定了 usertype=so 选项,则会更改与普通用户 PIN 相对的安全员 (Security Officer, SO) 用户 PIN。缺省情况下,usertype 假定为 user

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]
        [format=pem|der] (certificate output format)
        [subject=subject-DN] (override the CSR subject name)
        [altname=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] (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] (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 令牌。

-?

-? 子命令的格式如下所示:

pktool -?
pktool --help

-? 选项显示用法和帮助信息。--help-? 的同义词。

用法

pktool 的子命令支持以下选项:

altname=[critical:]subjectAltName

证书的主体替代名称。-A 选项后的参数的格式应该是 tag=value。有效的标记为 IP、DNS、EMAIL、URI、KRB、UPN 和 RID。如果 altname 字符串带有前缀 critical,则 SubjectAltName 扩展被标记为 critical

示例 1:将 IP 地址添加到 subjectAltName 扩展。altname="IP=1.2.3.4" 示例 2:将电子邮件地址添加到 subjectAltName 扩展,并将其标记为 critical。altname="critical:EMAIL=first.last@company.com"

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

通过将 listcurves 选项与 gencertgencsrgenkeypair 子命令一起使用,还可以查看已命名曲线的列表。

dir=directory_path

指定存储所请求的对象的 NSS 数据库目录或 OpenSSL 密钥库目录。

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

指定要添加到证书或证书请求的扩展密钥用法 X.509v3 扩展值。

EKU_Name 指定为以下任一值:serverAuthclientAuthcodeSigningemailProtectionipsecEndSystemipsecTunnelipsecUser timeStampingOCSPSigningKPClientAuthKPKdcscLogon

举例如下:

eku=KPClientAuth,clientAuth
extractable=y | n

指定 PKCS#11 令牌中的结果对称密钥是否为可提取的。有效值是 yn。缺省值是 y

format=pem | der | pkcs12

对于 gencert 子命令,此选项仅适用于基于文件的密钥库,如 OpenSSL。它用于指定要创建的密钥或证书文件的输出格式。有效格式是 pemder。缺省格式为 pem

对于 gencsr 子命令,此选项指定 CSR 文件的输出编码格式。有效格式是 pemder。缺省格式为 pem

hash=md5 | sha1 | sha256 | sha384 | sha512

对于 gencertgencsr 子命令,此选项允许调用者指定用于生成 X.509 证书签名的散列算法。使用 NSS 或 PKCS#11 密钥库创建基于 EC 或 RSA 的证书时可以使用此选项。使用基于 OpenSSL 文件的密钥库时,椭圆曲线支持不可用。

infile=input-fn

当 objtype=cert 且 keystore=file 时,为 listdelete 子命令指定证书文件名称。对于 import 子命令,此选项指定要导入的文件名。当 objtype=crl 时,为 listdeleteimport 子命令指定输入 CRL 文件名。

issuer=issuer-DN

指定证书的颁发者。

keylen=key-size

指定要生成的私钥或对称密钥的大小(位数)。

对于 gencertgencsr 子命令,缺省密钥长度是 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

指定要生成的私钥或对称密钥的类型。

对于 gencertgencsr 子命令,有效私钥类型是 rsaecdsa。缺省密钥类型是 rsa

对于 genkey 子命令,有效的对称密钥类型是 aesarcfourdes3desgeneric。缺省密钥类型是 aes

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

示例 1:设置 KeyUsage,以便 cert(或 csr) 可以用于对非证书或 CRL (digitalSignature) 数据进行签名和验证,还可以用于对非加密密钥 (dataEncipherment) 数据进行加密和解密。keyusage=digitalSignature,dataEncipherment

示例 2:与上面的示例 1 相同,但设置了 critical 位。keyusage=critical:digitalSignature,dataEncipherment

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

此选项用于显示受支持的椭圆曲线名称的列表。仅 gencertgencsrgenkeypair 子命令可以使用此选项。

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

指定证书的有效期。可以通过 number-hournumber-daynumber-year 指定证书使用期限。只能指定一种格式。缺省值是 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

指定对象类:certkeycrl。对于 download 子命令,如果未指定此选项,则缺省类是 crl

objtype=public | private | both

指定对象的类型:专用对象、公用对象或两者。当指定了 objtype=key 时,此选项仅适用于针对 PKCS#11 令牌的 listdelete 子命令。缺省值是 public

对于 list 子命令,可以将 label 选项与此选项组合使用以进一步限制密钥列表。对于 delete 子命令,可使用此选项将要删除的密钥缩小到仅公钥或仅私钥。此外,还可以省略 label 选项以指示删除所有公钥、所有私钥或所有这两种类型的密钥。可供 objtype 参数选用的 publicprivateboth 仅适用于 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 文件提取到基于文件的插件中的证书或密钥的输出格式。有效值是 pemder。缺省值是 pem。将 CRL 导入基于 CRL 文件的密钥库时,此选项指定 CRL 的输出格式。有效值是 pemder。缺省值是 der。对于 export 子命令,此选项指定要创建的指定输出文件的格式。支持的格式为 pemderpkcs12。缺省值是 pkcs12

outkey=key-fn

指定要写入到的输出私钥文件名。只有使用 files 密钥库时需要此选项。

prefix=DBprefix

指定 NSS 数据库前缀。此选项仅适用于 NSS 令牌。

print=y | n

此选项用于 genkey 子命令中,且适用于 PKCS11 密钥库和基于文件的密钥库。如果 print=ygenkey 子命令将在十六进制的单个行中输出生成的密钥的密钥值。缺省值是 n。对于 PKCS11 密钥库,如果创建对称密钥时使用了 sensitive=yextractable=n 设置,则不会显示密钥值,即使 print 选项设置为 y 也是如此。仍然会创建密钥,但发出如下警告:cannot reveal the key value

sensitive=y | n

指定 PKCS#11 令牌中的结果对称密钥是否为敏感的。有效值是 yn。缺省值为 n

serial=hex-serial-number

指定证书的唯一序列号。序列号必须指定为十六进制值。示例:0x0102030405060708090a0b0c0d0e0f

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 个字符)将用作令牌标签。如果只发现一个 :,则字符串将用作令牌标签和生产商。当指定了 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 验证。有效值是 yn。缺省值为 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
接口稳定性
Committed(已确定)

另请参见

attributes(5)pkcs11_softtoken(5)

RSA PKCS#11 v2.11 http://www.rsasecurity.com

RSA PKCS#12 v1.0 http://www.rsasecurity.com

SECG 建议的椭圆曲线域参数 http://www.secg.org