跳过导航链接 | |
退出打印视图 | |
手册页第 1M 部分:系统管理命令 Oracle Solaris 11.1 Information Library (简体中文) |
- 启用并配置内核 SSL 的 SMF 实例
ksslcfg create -f pkcs11 -T token_label -C certificate_label [-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 -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 -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/proxy。ksslcfg 可为该服务创建对主机和 SSL 端口组合唯一的实例。特定代理条目的实例 FMRI 可以使用 svcs(1) 找到,并用于其他服务的依赖项。服务实例的状态仅跟踪内核中配置。它不会反映侦听代理端口的应用程序的存在状况或状态。
支持以下选项:
允许客户机以排序顺序协商的密码集。下面列出了支持的 SSLv3 和 TLS 密码。请注意,这些名称不区分大小写。
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
使用 key_format 中指定的证书/密钥格式。支持的选项为 pkcs11、pkcs12 和 pem。
同时指定 pkcs12 或 pem 与 -f 选项时,可从 key_and_certificate_file 中读取 Web 服务器的密钥和证书。此文件还可能包含构成服务器证书的根 CA 证书链的任何中间 CA 证书。这些证书在文件中必须跟在服务器证书后面,并且顺序必须是颠倒的:级别最低的 CA 证书后跟下一个级别更高的 CA 证书,依此类推。
PKCS#11 可以在单个令牌中存储多个证书。此选项用于指定 certificate_label 标识的单个证书。该标签必须与 -T 指定的令牌中证书对象的 CKA_LABEL 相符。此选项将只能与 -f pkcs11 一起使用。
如果令牌标签为 Sun Software PKCS#11 softtoken,则此选项仅适用于 pkcs11 密钥格式。使用此选项可覆盖 PKCS#11 软令牌目录的缺省位置 ($HOME/.sunw)。请参见 pkcs11_softtoken(5)。
同时指定 pkcs11 与 -f 选项时,可从 ca_certchain_file 中读取一组中间 CA 证书,这些中间 CA 证书构成服务器证书(使用 -C 选项指定)的根 CA 证书链。该文件必须为 PEM 格式。
从 password_file 中获取用于加密私钥的口令。使用 pkcs11 选项(请参见上面的 -f)时,该口令可用于向 PKCS #11 令牌验证用户身份。
SSL 会话的超时值(以秒为单位)。该值与 Sun ONE Web 服务器的 SSL3SessionTimeout 或 mod_ssl 的 SSLSessionCacheTimeout 对应。
同时指定 pkcs11 和 -f 时,可使用 token_label 中指定的 PKCS#11 令牌。使用 cryptoadm list -v 可显示所有可用的 PKCS#11 令牌。
拥有口令文件的用户的名称。如果忽略,系统将尝试以 root 用户身份读取口令文件。
详细模式。
显示版本。
SSL 代理端口。端口号是专为 Web 服务器与内核 SSL 代理模块之间的明文 HTTP 通信指定的。不会将任何外部 HTTP 包传送到该端口。
可高速缓存的最大 SSL 会话数。它与 Sun ONE Web 服务器配置的 SSLCacheEntries 对应。如果不指定此选项,则缺省值为 5000 个条目。
显示命令的用法。
为其创建内核 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
成功完成。
出现错误。
有关下列属性的说明,请参见 attributes(5):
|
命令行选项和实用程序名称为 "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 命令此时只能在全局区域中使用。