使用样书管理证书库中的 SSL 证书
NetScaler ADM 证书存储区可帮助您在一个位置存储和管理您的 SSL 证书。因此,您可以在 NetScaler ADM 中存储 SSL 证书,并在 ADC 配置期间重复使用它们。
本文介绍如何创建样书定义,允许您从 NetScaler ADM 证书存储中上载和重复使用 SSL 证书。
参数
样书 定义支持 certkey
作为新的内置参数类型。使用此参数类型可重复使用 NetScaler ADM 证书存储库中的 SSL 证书。
parameters:
-
name: certificate
label: Certificate
description: "Certificate to be bound to this virtual load balanced application"
type: certkey
required: true
<!--NeedCopy-->
在此示例中,证书参数指的是 SSL 证书或来自 NetScaler ADM 证书存储区的证书链。
在 样书 定义中,您可以引用 certkey
参数的以下属性:
-
certkeyname
— 您要在实例上配置的 SSL 证书密钥的名称。 -
cert_filename
— SSL 证书的文件名。 -
password
— 如有必要,需要密码才能访问 SSL 证书。 -
key_filename
— SSL 证书密钥的文件名。 -
keyfile_contents
— SSL 证书的内容。 -
subject
— SSL 证书中提到的主题。 -
issuer
— 颁发 SSL 证书的机构。 -
certchain_certkeyname
— 证书链的名称。注意:
有时,许多分层证书颁发机构 (CA) 会对服务器证书进行签名,这意味着证书形成了一条链。当证书存储有证书链时,使用此属性。它可以帮助您将证书引用和绑定在一起。创建配置包时,证书链显示为列表。
这些属性可帮助您在 样书 定义中创建所需的组件。
组件
当样书有 type: certkey
参数时,您可以从 NetScaler ADM 证书存储区为该参数提供证书。在此工作流程中,除了从 NetScaler ADM 证书存储中查看和选择证书外,您还可以执行以下操作:
- 上载新证书。
- 更新现有证书。例如,过期的证书。
- 移除证书。
注意:
- 您还可以使用 NetScaler ADM SSL 控制面板在 NetScaler ADM 证书存储区中管理证书。
- 更新 NetScaler ADM 证书存储库中的 SSL 证书后,必须更新与 SSL 证书关联的配置包。要了解有关更新配置包的更多信息,请参阅 使用 API 更新现[有配置包](/zh-cn/netscaler-application-delivery-management-software/current-release/stylebooks/how-to-create-custom-stylebooks/edit-configpack.html) 或 创建和编辑配置包。
构建您的样书
以下样书定义使用来自 NetScaler ADM 证书存储区的 SSL 证书。此样书包含将主证书和密钥文件上载到 ADC 实例的组件。如果这些文件已经存在于 ADC 实例上,则 NetScaler ADM 会跳过上载步骤,这些组件将不起作用。
name: lb-with-cert-from-certstore
namespace: com.example.stylebooks
version: "1.0"
display-name: Application using a CertStore certificate
description: This StyleBook defines a simple SSL Vserver.
schema-version: "1.0"
import-stylebooks:
-
namespace: netscaler.nitro.config
version: "13.0"
prefix: ns
parameters:
-
name: name
type: string
label: Application Name
description: Give a name to the application configuration.
required: true
-
name: ip
type: ipaddress
label: Application Virtual IP (VIP)
description: The Application VIP that clients access
required: true
-
name: certificate
label: Application Certificate
description: Certificate chain and key to be bound to this application
type: certkey
required: true
components:
-
name: pem-cert-files-comp
type: ns::systemfile
description: This component uploads the PEM certificate file onto the 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: This component uploads the PEM key file onto the 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: This component creates the certkey on the ADC using the uploaded files.
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: This component creates the lbvserver of the application.
properties:
name: $parameters.name + "-lbvserver"
servicetype: SSL
ipv46: $parameters.ip
port: 443
lbmethod: ROUNDROBIN
components:
-
name: sslvserver-comp
type: ns::sslvserver
description: This component configures SSL settings on the vserver
properties:
vservername: $parent.properties.name
ssl3?: ENABLED
tls1?: ENABLED
tls11?: ENABLED
-
name: cert-bindings-adv-comp
type: ns::sslvserver_sslcertkey_binding
description: This component binds the certkey to the vserver
condition: $parameters.certificate
properties:
vservername: $parent.properties.name
certkeyname: $parameters.certificate.certkeyname
<!--NeedCopy-->