Application Delivery Management

使用样书管理证书库中的 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 证书。此样书包含将主证书和密钥文件上载到 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-->
使用样书管理证书库中的 SSL 证书