创建用于上载 SSL 证书和证书密钥文件的样书
创建使用 SSL 协议的样书配置时,必须上载样书参数所需的 SSL 证书文件和证书密钥文件。样书允许您使用 NetScaler 控制台 GUI 直接从本地系统上载 SSL 文件和密钥文件。您还可以使用 NetScaler 控制台 API 来上载 NetScaler 控制台已经管理的证书文件和密钥文件。
样书配置
本文档帮助您创建自己的样书- 负载平衡虚拟服务器 (SSL) ,其中包含用于上载 SSL 证书和密钥文件的组件。此处提供的样书作为示例在选定的 NetScaler 实例上创建了基本的负载平衡虚拟服务器配置。该配置使用 SSL 协议。要使用此样书创建配置,必须提供虚拟服务器的名称和 IP 地址,选择负载平衡方法参数,上载虚拟服务器的证书文件和证书密钥文件,或者使用 NetScaler 控制台中已经存在的证书文件和证书密钥文件。这些参数在以下“参数”部分中指定:
parameters:
-
name: name
type: string
required: true
-
name: ip
type: ipaddress
required: true
-
name: lb-alg
type: string
allowed-values:
- ROUNDROBIN
- LEASTCONNECTION
default: ROUNDROBIN
-
name: certificate
label: "SSL Certificate File"
description: "The file name of the SSL certificate file"
type: certfile
-
name: key
label: "SSL Certificate Key File"
description: "The file name of the server certificate's private key file"
type: keyfile
-
name: passphrase
label: "SSL Certificate Key Passphrase"
description: "The password used to protect the certificate's private key file"
type: password
<!--NeedCopy-->
然后在样书的组件部分中创建两个组件。my-lbvserver-comp
组件的类型为 ns::lbvserver
,其中:
- “ns”是指您在
import-stylebooks
部分中指定的内置命名空间 netscaler.nitro.config 和 10.5 版本的前缀。 -
lbvserver
是此命名空间中的内置样书。它对应于同名的 NetScaler NITROlbvserver
资源。
第二个组件 lbvserver-certificate-comp
的类型为 stlb::vserver-certs-binds
。前缀是 stlb
指在样书的导入样书部分中指定的命名空间“com.citrix.adc.stylebook”和 1.0 版。如果“com.citrix.adc.stylebook”命名空间可以看作 vserver-certs-binds
是一个文件夹,那么该文件夹中的另一个样书(或文件)。命名空间“com.citrix.adc.stylebooks”中的样书作为 NetScaler 控制台的一部分发货。
用户定义的 vserver-certs-binds
样书使用的样书允许您轻松配置证书,方法是将证书和密钥文件上载到目标 NetScaler 实例,以及配置证书和密钥文件到相应的虚拟服务器的绑定。此组件的属性是-lb 虚拟服务器的名称以及创建配置包时提供的 SSL 证书的名称。
components:
-
name: my-lbvserver-comp
type: ns::lbvserver
properties:
name: $parameters.name
servicetype: SSL
ipv46: $parameters.ip
port: 443
lbmethod: $parameters.lb-alg
-
name: lbvserver-certificate-comp
type: stlb::vserver-certs-binds
description: Binds lbvserver with server certificate
properties:
vserver-name: $components.my-lbvserver-comp.properties.name
certificates:
-
cert-name: $parameters.name + "-lb-cert"
cert-file: $parameters.certificate
ssl-inform: PEM
key-name: $parameters.name + "-key"
key-file: $parameters.key
cert-password: $parameters.passphrase
<!--NeedCopy-->
使用 API 基于此类样书创建配置时,只使用文件名(而不是完整文件路径)。这些文件预计已经在 NetScaler 控制台的证书和密钥文件文件夹中可用。上载的 SSL 证书文件存储在 NetScaler 控制台的/var/mps/tenants/.../ns_ssl_certs
目录中 ,SSL 证书密钥文件存储在 NetScaler 控制台的 /var/mps/tenants/.../ns_ssl_keys
目录中。
创建用于上载 SSL 文件的配置
以下过程使用样书示例中的 SSL 协议在选定的 NetScaler 实例上创建基本的负载平衡虚拟服务器配置。您可以使用此过程在 NetScaler 控制台中上载 SSL 证书文件和证书密钥文件。
要创建上载文件的配置,请执行以下操作:
-
在 NetScaler 控制台中,导航到应用程序 > 配置 > 样书。 样书页面显示您的 NetScaler 控制台中可用的所有样书。
-
向下滚动并选择 负载平衡虚拟服务器 (SSL) 或在搜索字段中键入 负载平衡虚拟服务器 (SSL) ,然后按 Enter 键。
-
在“样书”面板中单击“创建配置”。
样书参数显示为用户界面页面,允许您输入此样书中定义的所有参数的值。
-
在基本负载平衡器设置部分中输入负载平衡器的名称和虚拟 IP 地址。
-
在 SSL 证书设置中,从本地存储文件夹中选择相应的文件。您也可以选择 NetScaler 控制台上存在的文件。
-
选择必须在其上创建配置的目标 NetScaler 实例,然后单击 创建”。
备注:
您也可以单击刷新图标,将最近在 NetScaler 控制台中发现的 NetScaler 实例添加到此窗口的可用实例列表中。
在 NetScaler 控制台中,以下作为 NetScaler 控制台一部分提供的默认样书允许您通过上载 SSL 证书和密钥来创建 SSL 支持。
- HTTP/SSL 负载平衡样书 (lb)
- HTTP/SSL 负载平衡(带监视器)样书 (
lb-mon
)- 带监视器的HTTP/SSL 内容切换应用程序 (
cs-lb-mon
)- 使用 CS、LB 和 SSL 功能的示例应用程序风格手册 (
sample-cs-app
)
构建您的样书
lb-vserver-ssl.yaml 文件的完整内容如下所示:
name: lb-vserver-ssl
namespace: com.example.ssl.stylebooks
version: "0.1"
description: "This stylebook defines a load balancing virtual server configuration."
display-name: "Load Balancing Virtual Server (SSL)"
schema-version: "1.0"
import-stylebooks:
-
namespace: netscaler.nitro.config
prefix: ns
version: "10.5"
-
namespace: com.citrix.adc.stylebooks
prefix: stlb
version: "1.0"
parameters:
-
name: name
type: string
required: true
-
name: ip
type: ipaddress
required: true
-
name: lb-alg
type: string
allowed-values:
- ROUNDROBIN
- LEASTCONNECTION
default: ROUNDROBIN
-
name: certificate
label: "SSL Certificate File"
description: "The file name of the SSL certificate file"
type: certfile
-
name: key
label: "SSL Certificate Key File"
description: "The file name of the server certificate's private key file"
type: keyfile
-
name: key
label: "SSL Certificate Key Passphrase"
description: "The password used to protect the certificate's private key file"
type: password
components:
-
name: my-lbvserver-comp
type: ns::lbvserver
properties:
name: $parameters.name
servicetype: SSL
ipv46: $parameters.ip
port: 443
lbmethod: $parameters.lb-alg
-
name: lbvserver-certificate-comp
type: stlb::vserver-certs-binds
description: Binds lbvserver with server certificate
properties:
vserver-name: $ components.my-lbvserver-comp.properties.name
certificates:
-
cert-name: $parameters.name + "-lb-cert"
cert-file: $parameters.certificate
ssl-inform: PEM
key-name: $parameters.name + "-key"
key-file: $parameters.key
cert-password: $parameters.passphrase
<!--NeedCopy-->
使用 NetScaler 控制台 API 创建配置包:
您还可以使用 NetScaler 控制台 API 来创建配置包,将证书和密钥文件上载到选定的 NetScaler 实例。有关如何使用 API 的更多信息,请参阅 如何使用 API 创建配置来上载证书和密钥文件。
查看在 NetScaler 实例上定义的对象
在 NetScaler 控制台上创建样书配置(配置包)后, 单击“查看创建的对象”以显示在目标 NetScaler 实例上创建的所有 NetScaler 对象