手册页部分 1M: 系统管理命令

退出打印视图

更新时间: 2014 年 7 月
 
 

ksslcfg(1M)

名称

ksslcfg - 启用并配置内核 SSL 的 SMF 实例

用法概要

ksslcfg create -f pkcs11 
-T token_label -C 
certificate_label [-k handshake_timeout] [-n max_handshakes]
     [-d softtoken_directory] 
     -p password_file [-u 
username] 
     [-h ca_certchain_file] [
-c ciphersuites] 
     [-t ssl_session_cache_timeout] 
     [-z ssl_session_cache_size] [
-v] -x proxy_port [
host] ssl_port
ksslcfg create -f pkcs12 
-i cert_and_key_pk12file [-k handshake_timeout] [-n max_handshakes]
     -p password_file [-u 
username] 
     [-c ciphersuites] [-t
 ssl_session_cache_timeout] 
     [-z ssl_session_cache_size] [
-v] -x proxy_port [
host] ssl_port
ksslcfg create -f pem -i
 cert_and_key_pemfile [-k handshake_timeout] [-n max_handshakes]
     -p password_file [-u 
username] 
     [-c ciphersuites] [-t
 ssl_session_cache_timeout] 
     [-z ssl_session_cache_size] [
-v] -x proxy_port [
host] ssl_port
ksslcfg delete [-v] [
host] ssl_port
ksslcfg -V
ksslcfg -?

描述

ksslcfg 用于管理内核 SSL 代理模块的 smf(5) 实例。启用了 SSL 的 Web 服务器可以使用其内核 SSL 代理的服务来提高 HTTPS 包处理性能,方法是创建内核 SSL 服务实例,指定 SSL 代理端口和参数,然后侦听代理端口。

create 子命令用于创建实例并为给定地址和 SSL 端口启用服务。

delete 子命令用于禁用给定地址和端口的服务(如果已启用),并从 SMF 系统信息库中删除实例。

ksslcfg 可以采用 root 身份或由分配给网络安全配置文件的其他用户运行。请参见 rbac(5)user_attr(4)

ksslcfg 成功配置内核中的服务后,必须启动或重新启动(如果已在运行)代理应用程序。

启动应用程序之前,您必须先运行 ksslcfg 配置内核 SSL 代理。

ksslcfg 允许您指定 ssl_port 操作数(如“操作数”部分所述),以及使用 –x 选项指定 proxy_port 值。如果指定用于内核 SSL 代理,则无法针对 Solaris 网络高速缓存和加速 (Network Cache and Acceleration, NCA) 功能配置这些值。

内核 SSL 代理实例的故障管理资源标识符 (Fault Managed Resource Identifier, FMRI) 是 svc://network/ssl/proxyksslcfg 可为该服务创建对主机和 SSL 端口组合唯一的实例。特定代理条目的实例 FMRI 可以使用 svcs(1) 找到,并用于其他服务的依赖项。服务实例的状态仅跟踪内核中配置。它不会反映侦听代理端口的应用程序的存在状况或状态。

选项

支持以下选项:

–c ciphersuites

允许客户机以排序顺序协商的密码集。下面列出了支持的 SSLv3 和 TLSv1.0 密码。请注意,这些名称不区分大小写。

rsa_rc4_128_sha
rsa_rc4_128_md5
rsa_aes_256_cbc_sha
rsa_aes_128_cbc_sha
rsa_3des_ede_cbc_sha
rsa_des_cbc_sha
–f key_format

使用 key_format 中指定的证书/密钥格式。支持的选项为 pkcs11pkcs12pem

–i key_and_certificate_file

同时指定 pkcs12pem–f 选项时,可从 key_and_certificate_file 中读取 Web 服务器的密钥和证书。此文件还可能包含构成服务器证书的根 CA 证书链的任何中间 CA 证书。这些证书在文件中必须跟在服务器证书后面,并且顺序必须是颠倒的:级别最低的 CA 证书后跟下一个级别更高的 CA 证书,依此类推。

–C certificate_label

PKCS#11 可以在单个令牌中存储多个证书。此选项用于指定 certificate_label 标识的单个证书。该标签必须与 –T 指定的令牌中证书对象的 CKA_LABEL 相符。此选项将只能与 –f pkcs11 一起使用。

–d softtoken_directory

如果令牌标签为 Sun Software PKCS#11 softtoken,则此选项仅适用于 pkcs11 密钥格式。使用此选项可覆盖 PKCS#11 软令牌目录的缺省位置 ($HOME/.sunw)。请参见 pkcs11_softtoken (5)

–h ca_certchain_file

同时指定 pkcs11–f 选项时,可从 ca_certchain_file 中读取一组中间 CA 证书,这些中间 CA 证书构成服务器证书(使用 –C 选项指定)的根 CA 证书链。该文件必须为 PEM 格式。

–p password_file

password_file 中获取用于加密私钥的口令。使用 pkcs11 选项(请参见上面的 –f)时,该口令可用于向 PKCS #11 令牌验证用户身份。

–k handshake_timeout

要完成的 SSL 握手的超时值(以秒为单位)。如果达到指定的超时时间时握手未完成,将会断开连接。缺省值为 30 秒。

–n max_handshakes

并发 SSL 握手的最大数目。一旦握手数达到此数值,将拒绝所有新的握手。缺省值为 65536。

–t ssl_session_cache_timeout

SSL 会话的超时值(以秒为单位)。该值与 Sun ONE Web 服务器的 SSL3SessionTimeoutmod_sslSSLSessionCacheTimeout 对应。

–T token_label

同时指定 pkcs11–f 时,可使用 token_label 中指定的 PKCS#11 令牌。使用 cryptoadm list –v 可显示所有可用的 PKCS#11 令牌。

–u username

拥有口令文件的用户的名称。如果忽略,系统将尝试以 root 用户身份读取口令文件。

–v

详细模式。

–V

显示版本。

–x proxy_port

SSL 代理端口。端口号是专为 Web 服务器与内核 SSL 代理模块之间的明文 HTTP 通信指定的。不会将任何外部 HTTP 包传送到该端口。

–z ssl_session_cache_size

可高速缓存的最大 SSL 会话数。它与 Sun ONE Web 服务器配置的 SSLCacheEntries 对应。如果不指定此选项,则缺省值为 5000 个条目。

–?

显示命令的用法。

操作数

[host] [ssl_port ]

为其创建内核 SSL 条目的 Web 服务器的地址和端口。如果忽略 host,该条目将用于到达 ssl_port 的所有请求,而与目标地址无关。对于 host,主机名和 IP 地址都是可接受的形式。ssl_port 是必需的。通常,其值为 443。

示例

示例 1 创建并启用内核 SSL 实例

以下命令使用 PKCS#11 格式的证书和密钥来创建并启用内核 SSL 实例。

# ksslcfg create -f pkcs11 -T "Sun Software PKCS#11 softtoken"  \
-C "Server-Cert" -p /some/directory/password -u webservd \
-x 8080 www.mysite.com 443

% svcs svc:/network/ssl/proxy
STATE          STIME    FMRI
online         Sep_27   svc:/network/ssl/proxy:kssl-www-mysite-com-443
示例 2 为所有地址创建并启用缺省实例

以下命令通过 pkcs#12 文件中的证书和密钥为所有地址创建并启用缺省实例。

# ksslcfg create -x 8888 -f pkcs12 -i /some/directory/keypair.p12 \
    -p /some/directory/password -u webservd 443
示例 3 使用特定的密钥套件创建并启用实例

以下命令使用特定的密钥套件创建并启用实例。

# ksslcfg create -x 8080 -f pem \
-i /some/directory/keypair.pem -p /some/directory/password \
-c "rsa_rc4_128_md5,rsa_rc4_128_sha" \
209.249.116.195 443
示例 4 禁用并删除实例

以下命令禁用并删除实例。

# ksslcfg delete www.mysite.com 443
示例 5 建立代理应用程序相关性

以下所示的命令序列可对 KSSL 实例建立代理应用程序相关性。请注意,只有启动 SSL 内核代理实例后,才应启动代理应用程序。

以下命令建立 Apache 2.2 Web 服务器相关性。KSSL 已配置为侦听 SSL 端口 443 和通配符地址。

# svccfg -s svc:/network/http:apache22
svc:/network/http:apache22> addpg kssl dependency
svc:/network/http:apache22> setprop kssl/entities = fmri:svc:/network/\

ssl/proxy:kssl-INADDR_ANY-443
svc:/network/http:apache22> setprop kssl/grouping = astring: require_all

svc:/network/http:apache22> setprop kssl/restart_on = astring: refresh

svc:/network/http:apache22> setprop kssl/type = astring: service
svc:/network/http:apache22> end

执行上述命令后,启用该 Web 服务器:

# svcadm enable svc:/network/http:apache22

如果该 Web 服务器已在运行,请将其重新启动:

# svcadm refresh svc:/network/http:apache22
# svcadm restart svc:/network/http:apache22

退出状态

0

成功完成。

>0

出现错误。

属性

有关下列属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
system/core-os
接口稳定性
请参见下文。

命令行选项和实用程序名称为 "Committed"(已确定)。命令输出、FMRI 服务名称 (svc://network/ssl/proxy) 和 FMRI 实例的名称格式为 "Uncommitted"(未确定)

另请参见

svcprop(1)svcs(1)cryptoadm(1M)svcadm(1M)svccfg(1M)user_attr(4)attributes(5)kssl(5)pkcs11_softtoken (5)rbac(5)smf(5)nca(7d)

由 Chown, P. 编著的《Advanced Encryption Standard (AES) Ciphersuites for Transport Layer Security (TLS)》,RFC 3268,2002 年 6 月。

附注

ksslcfg create 在没有主机参数的情况下会创建 INADDR_ANY smf 实例。ksslcfg delete 在没有主机参数的情况下将仅删除 INADDR_ANY 实例。ksslcfg delete 需要主机参数才能删除任何非 INADDR_ANY 实例。

在安装了 zones(5) 的系统上,ksslcfg 命令此时只能在全局区域中使用。