此处忽略SQLServer的安装,这里需要注意两点
1.开启SQLServer的远程TCP/IP连接功能打开随SQLServer一并安装的SqlServerConfigurationManager配置软件
SQLServer的证书校验机制使用到了证书的扩展字段SAN(SubjectAlternativeName)来确定连接主体的是否可信,所以生成的证书可以包含SAN字段,用以包含所以可能的SQLServer用到的IP以及域名(比如NAT场景下)
1.准备openssl配置文件req.conf
[req]distinguished_name=req_distinguished_namereq_extensions=v3_reqprompt=no[req_distinguished_name]C={国家}ST={省}L={市}O={组织}OU={组织单元}CN={证书主体唯一标识}[v3_req]keyUsage=keyEncipherment,dataEnciphermentextendedKeyUsage=serverAuthsubjectAltName=@alt_names[alt_names]DNS.1={可能使用的SAN-1:IP/域名}DNS.2={可能使用的SAN-2:IP/域名}DNS.3={可能使用的SAN-3:IP/域名}2.生成CertificateSigningRequest(CSR,证书签名请求)以及私钥
可以通过命令验证生成的证书请求是否符合预期
3.将PKCS#8格式的私钥文件company_san.key.temp转换成RSA格式
opensslrsa-incompany_san.key.temp-outcompany_san.key4.生成带有SAN扩展字段的证书文件
5.将私钥和证书一起打包成PKCS#12格式,用pfx或者p12作为后缀即可
opensslpkcs12-export-outcompany_san.p12-inkeycompany_san.key-incompany_san.crt-passwordpass:1234566.利用keytool将pfx格式证书转换成jks格式,方便jdbc连接
keytool-importkeystore-srckeystorecompany_san.p12-srcstoretypePKCS12-srcstorepass123456-destkeystorecompany_san.jks-deststoretypeJKS-deststorepass123456-destkeypass123456
win+r->运行->打开certlm.msc
在个人证书下->所有任务->导入
按照提示,
打开随SQLServer一并安装的SqlServerConfigurationManager配置软件,选择属性
选择Certificate选项页
这时候可以选择下拉列表,如果生成的证书的CN信息中包含计算机名的话,可以在这里找到。
或者利用Import功能进行导入
1.在需要连接的windows主机上面,将之前生成的company_san.p12证书导入可信根证书目录中
2.打开SQLServerManagementStudioManagement(SSMS),在"连接到服务器"中,填写正确的信息,
注:这里的ip地址,192.168.9.120已经在上面生成的证书SAN信息中了
3.点击选项,在“连接属性”中勾选“加密连接”,这里不勾选“信任服务器证书”,保证使用的上面配置的证书,要不然会使用SQLServer服务启动内部自生成的证书,点击连接