使用 StyleBook 从证书存储管理 SSL 证书
NetScaler Console 证书存储可帮助您在一个位置存储和管理 SSL 证书。因此,您可以将 SSL 证书存储在 NetScaler Console 中,并在 NetScaler 配置期间重复使用它们。
本文介绍如何创建 StyleBook 定义,该定义允许您从 NetScaler Console 证书存储上传和重复使用 SSL 证书。
参数
StyleBook 定义支持 certkey 作为一种新的内置参数类型。使用此参数类型可从 NetScaler Console 证书存储重复使用 SSL 证书。
parameters:
-
name: certificate
label: Certificate
description: "要绑定到此虚拟负载均衡应用程序的证书"
type: certkey
required: true
<!--NeedCopy-->
在此示例中,证书参数指的是来自 NetScaler Console 证书存储的 SSL 证书或证书链。
在 StyleBook 定义中,您可以引用 certkey 参数的以下属性:
-
certkeyname– 您要在实例上配置的 SSL 证书密钥的名称。 -
cert_filename– SSL 证书的文件名。 -
password– 如果需要,访问 SSL 证书所需的密码。 -
key_filename– SSL 证书密钥的文件名。 -
keyfile_contents– SSL 证书的内容。 -
subject– SSL 证书中提及的主题。 -
issuer– 颁发 SSL 证书的机构。 -
certchain_certkeyname– 证书链的名称。注意:
有时,多个分层证书颁发机构 (CA) 会签署服务器证书,这意味着这些证书会形成一个链。当证书存储中包含证书链时,请使用此属性。它有助于您引用和绑定证书。在创建配置包时,证书链会显示为一个列表。
这些属性可帮助您在 StyleBook 定义中创建所需的组件。
组件
当 StyleBook 具有 type: certkey 参数时,您可以从 NetScaler Console 证书存储为该参数提供证书。在此工作流程中,除了查看和选择 NetScaler Console 证书存储中的证书外,您还可以执行以下操作:
- 上传新证书。
- 更新现有证书。例如,已过期的证书。
- 删除证书。
注意:
- 您还可以使用 NetScaler Console SSL 控制板管理 NetScaler Console 证书存储中的证书。
- 在 NetScaler Console 证书存储中更新 SSL 证书后,您必须更新与该 SSL 证书关联的配置包。要了解有关更新配置包的更多信息,请参阅使用 API 更新现有配置包或创建和编辑配置包。
构建您的 StyleBook
以下 StyleBook 定义使用来自 NetScaler Console 证书存储的 SSL 证书。此 StyleBook 包含将主证书和密钥文件上传到 NetScaler 实例的组件。如果这些文件已存在于 NetScaler 实例上,NetScaler Console 会跳过上传步骤,并且这些组件不起作用。
name: lb-with-cert-from-certstore
namespace: com.example.stylebooks
version: "1.0"
display-name: 使用证书存储证书的应用程序
description: 此 StyleBook 定义了一个简单的 SSL 虚拟服务器。
schema-version: "1.0"
import-stylebooks:
-
namespace: netscaler.nitro.config
version: "13.0"
prefix: ns
parameters:
-
name: name
type: string
label: 应用程序名称
description: 为应用程序配置指定一个名称。
required: true
-
name: ip
type: ipaddress
label: 应用程序虚拟 IP (VIP)
description: 客户端访问的应用程序 VIP
required: true
-
name: certificate
label: 应用程序证书
description: 要绑定到此应用程序的证书链和密钥
type: certkey
required: true
components:
-
name: pem-cert-files-comp
type: ns::systemfile
description: 此组件将 PEM 证书文件上传到 NetScaler
condition: $parameters.certificate
properties:
filename: $parameters.certificate.cert_filename
filelocation: /nsconfig/ssl
filecontent: base64($parameters.certificate.certfile_contents)
fileencoding: BASE64
-
name: pem-KEY-files-comp
type: ns::systemfile
description: 此组件将 PEM 密钥文件上传到 NetScaler。
condition: $parameters.certificate
properties:
filename: $parameters.certificate.key_filename
filelocation: /nsconfig/ssl
filecontent: base64($parameters.certificate.keyfile_contents)
fileencoding: BASE64
-
name: cert-files-comp
type: ns::sslcertkey
description: 此组件使用上传的文件在 NetScaler 上创建 certkey。
condition: $parameters.certificate
properties:
certkey: $parameters.certificate.certkeyname
cert: $parameters.certificate.cert_filename
key: $parameters.certificate.key_filename
-
name: lbvserver-comp
type: ns::lbvserver
description: 此组件创建应用程序的 lbvserver。
properties:
name: $parameters.name + "-lbvserver"
servicetype: SSL
ipv46: $parameters.ip
port: 443
lbmethod: ROUNDROBIN
components:
-
name: sslvserver-comp
type: ns::sslvserver
description: 此组件在虚拟服务器上配置 SSL 设置
properties:
vservername: $parent.properties.name
ssl3?: ENABLED
tls1?: ENABLED
tls11?: ENABLED
-
name: cert-bindings-adv-comp
type: ns::sslvserver_sslcertkey_binding
description: 此组件将 certkey 绑定到虚拟服务器
condition: $parameters.certificate
properties:
vservername: $parent.properties.name
certkeyname: $parameters.certificate.certkeyname
<!--NeedCopy-->