您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

sp_ssladmin

语法


sp_ssladmin {[addcert, <certificate_path>[, <password> | NULL]] 
	[dropcert, <certificate_path>]
	[lscert] 
	[help]
	[lsciphers]
	[setciphers, 
	{ "TLS1.2" | "TLS1.0" | "FIPS" | "Strong" | "Weak" | "All" | <quoted_list_of_ciphersuites>}]
	[setprotocol, { "TLS1.2" | NULL }]
     [lsprotocol]} 

参数

addcert

在证书文件中为本地服务器添加证书。

<certificate_path>

指定本地服务器上证书文件的绝对路径。

<password>

向证书文件添加新服务器证书时用于加密私有密钥的口令。

NULL

用于通过在启动期间从命令行请求口令,要求以有人看管的方式启动 SAP ASE 服务器。

dropcert

从证书文件中删除证书。

lscert

列出证书文件中的证书。

help

显示 sp_ssladmin 的联机帮助。

lsciphers

显示任何密码成套程序优先选项集的值。

setciphers

设置特定的密码成套程序优先选项。选择以下选项之一:

  • TLS1.2 – 是 TLS 版本 1.2 所支持的加密算法的集合。

  • TLS1.0 – 是 TLS 版本 1.0 所支持的加密算法的集合。

  • FIPS – 是符合 FIPS 标准的加密算法、散列算法和密钥交换算法的集合。此列表包括 AES、3DES、SHA1 和 SHA2 算法。

  • Strong – 是所用密钥长度大于 64 位的加密算法的集合。

  • Weak – 是属于所有受支持的密码成套程序的集合但又不属于 strong 集合的加密算法的集合。

  • All – 是缺省密码成套程序的集合。

  • <quoted_list_of_ciphersuites> – 以逗号分隔的列表形式指定密码成套程序集,列表中各项按优先顺序排列。该列表首尾用引号(“ ”)引起来。此带引号的列表可以包含任何预定义集合以及各个密码成套程序名称。未知的密码成套程序名称将导致报告错误,但对优先选项无影响。有关定义的集中包含的密码成套程序列表的信息,请参见《系统管理指南》>“数据保密性”。

    setprotocol

    设置协议版本。选择以下选项之一:

  • TLS1.2 – 设置 TLS 协议,以使客户端必须使用 TLS 1.2 协议版本才能成功连接。

  • NULL – 通过从客户端接受 TLS 1.0 和 TLS 1.2 协议版本允许向后兼容。这是缺省值。

    lsprotocol

    显示协议版本。返回的值为:

  • 当将 setprotocol 设置为 TLS1.2 时,lsprotocol 会返回 TLSv1.2。

  • 当将 setprotocol 设置为 NULL 时,lsprotocol 会返回 0。

  • 未设置 setprotocol 时,例如更新后,系统目录没有值,并且 lsprotocol 会返回 NULL。

    示例

    示例 1

    /sybase/ASE-16_0/certificates 的绝对路径(在 Windows 上为 x:\sybase\ASE-16_0\certificates)下的证书文件中为本地服务器添加一个条目,即 Server1.crt。私有密钥用口令“mypassword”进行加密。该口令应该是创建私有密钥时所指定的那个口令:

    
    sp_ssladmin addcert, "/sybase/ASE-16_0/certificates/Server1.crt", 
        "mypassword"
    

    示例 2

    从位于 /sybase/ASE-16_0/certificates(在 Windows 上为 x:\sybase\ASE-16_0\certificates)下的证书文件中删除证书 Server1.crt:

    
    sp_ssladmin dropcert , "/sybase/ASE-16_0/certificates/Server1.crt"
    

    示例 3

    列出本地服务器上的所有服务器证书:

    
    sp_ssladmin lscert
    go
    
    
    <h2>certificate_path</h2>
    /sybase/ASE-16_0/certificates/Server1.crt
    

    示例 4

    显示已设置的密码成套程序首选项:

    
    1> sp_ssladmin lsciphers
    2> go
    
    
     Cipher Suite Name  Preference  
    ------------------------------ 
    TLS_RSA_WITH_AES_128_CBC_SHA
    
    (1 row affected)
    

    示例 5

    使用带引号的密码成套程序列表来设置 SAP ASE 服务器中的优先选项:

    
    1> sp_ssladmin setciphers, 'TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA'
    2> go
    
    
    The following cipher suites and order of preference are set for SSL connections:
    Cipher Suite Name                                                Preference  
    ---------------------------------------------------------------- ----------- 
    TLS_RSA_WITH_AES_128_CBC_SHA                                       1 
    TLS_RSA_WITH_AES_256_CBC_SHA                                       2 
    

    示例 6

    设置 TLS 协议,客户端必须使用 TLS 1.2 协议版本成功连接,并严格执行 SSL 的使用,仅使用版本 TLS 1.2:

    
    1> sp_ssladmin setprotocol,'TLS1.2'
    2> go
     TLS Protocol Version 
     -------------------- 
     TLSv1.2              
    (1 row affected)
    (return status = 0)
    

    示例 7

    指定的密码成套程序是独立于协议版本的。例如,当已设置 TLS 1.2 协议版本时,如果密码成套程序首选项包含 TLS 1.0 SSL 密码成套程序,使用 TLS 1.2 协议的成功的 SSL 握手可能仍会与在 TLS 1.0 中定义的密码成套程序进行协商。但是,设置 TLS 1.0 协议版本的客户端将不能连接到服务器,并报告握手错误。

    此示会显示设置为 TLS 1.2 的协议版本和设置为较弱密码成套程序 TLS_RSA_WITH_RC4_128_SHA 的密码成套程序。已使用较弱密码成套程序 TLS_RSA_WITH_RC4_128_SHA。

    
    1> sp_ssladmin lsprotocol
    2> go 
    TLS Protocol Version 
    -------------------- 
    TLSv1.2 
    (1 row affected) 
    (return status = 0) 
    1> select @@ssl_protocol 
    2> go 
    --------------------- 
    TLSv1.2 
    (1 row affected) 
    1> select @@ssl_ciphersuite 
    <h2>2> go </h2>
    TLS_RSA_WITH_RC4_128_SHA 
    (1 row affected) 
    

    示例 8

    未设置协议时,sp_ssladmin lsprotocol 会返回 NULL:

    
    1> sp_ssladmin lsprotocol
    2> go
     TLS Protocol Version 
     -------------------- 
    (0 rows affected)
    (return status = 0)
    

    示例 9

    将协议设置为 NULL 时,sp_ssladmin lsprotocol 会返回 0:

    
    1> sp_ssladmin lsprotocol 
    2> go 
    TLS Protocol Version 
     --------------------
      0  
    (1 row affected) 
    (return status = 0) 
    

    用法

  • SAP ASE 监听器必须为客户端提供一个认证。认证中的公用名必须与 interfaces 文件中客户端使用的公用名匹配。如果不匹配,服务器鉴定和登录将失败。

  • 如果将口令指定为 NULL,必须用 -y 标志启动 dataserver。该标志将提示管理员在命令行上输入私有密钥口令。

  • 使用 NULL 作为口令的目的是在 SSL 加密会话开始之前的初始配置 SSL 期间保护口令。

  • 在建立了 SSL 连接并且重新启动了SAP ASE 服务器后,再次使用 sp_ssladmin,这一次使用实际口令。这时,SAP ASE 服务器将加密并存储口令。以后从命令行启动 SAP ASE 服务器都会使用加密的口令;启动期间不必在命令行指定口令。

  • 可以指定“localhost”作为 interfaces 文件(在 Windows 上为 sql.ini)中的 <hostname> 以防止客户端进行远程连接。只能建立本地连接,并且口令绝不会通过网络连接传送。