如何解决用于SQL Server的OPenSSL证书
| 我为Microsoft WebServer 2003 IIS 6.0使用OpenSSL创建了SSL证书。我也可以在客户端和服务器端安装和使用它。现在,我想将其用于sql Server Express 2008 R2,但它不会出现在sql Server配置管理器的证书列表中。我在互联网上尝试了很多此类提示,但没有一个起作用。我还在MS服务器上找到了先决条件列表,但不确定如何理解它: 证书必须位于本地计算机或当前用户证书存储中。 证书必须具有良好的时间戳,即当前系统时间必须在证书的有效时间窗口内。 证书必须用于服务器身份验证,即必须为服务器身份验证(1.3.6.1.5.5.7.3.1)打开证书的增强密钥使用属性。 证书的密钥规范必须包含AT_KEYEXCHANGE属性。通常,证书的密钥用法应包括“密钥加密”。 证书的主题CN必须与服务器计算机的FQDN匹配,或者如果服务器在故障转移群集上运行,则必须与虚拟服务器的FQDN匹配。这意味着必须在故障转移群集中的所有节点上配置必需的证书。 确定项目1、2和3。据我所知,项目4是默认的 读。项目5也成立:CN匹配FQDN。 有谁能够帮助我? 我执行以下步骤来创建证书:set home=c:\\openSSL\\bin
set randfile=File.rnd
openssl genrsa -des3 -out firma-private.key 2048
openssl req -new -config 2.config -key firma-private.key -x509 -days 3065 -out firma-ca.cer
openssl x509 -req -days 3065 -in certreq.txt -CA firma-ca.cer -CAkey firma-private.key -CAcreateserial -out extern-server.cer
2.config的内容:
[ req ]
default_bits = 2048
distinguished_name = req_DN
string_mask = nombstr
[ req_DN ]
countryName = DE
countryName_default = DE
countryName_min = 2
countryName_max = 2
stateOrProvinceName = N........ W........
stateOrProvinceName_default = N........ W........
localityName = W........
localityName_default = W........
0.organizationName = S.....-C......
0.organizationName_default = S.....-C......
organizationalUnitName = Software
organizationalUnitName_default = Software
commonName = s.....-c.......dyndns.org
commonName_max = 64
commonName_default = s.....-........dyndns.org
emailAddress = Info@S.....-C.......de
emailAddress_max = 40
emailAddress_default = Info@S.....-C.......de
提前致谢,
安德烈
解决方法
我知道这已经有几个月的历史了,但是在寻找相同答案的过程中却碰到了它。
我在此链接中找到了解决方法
基本上看来,问题在于以“网络服务”运行的SQL服务没有使用密钥的权限。我按照步骤向网络服务授予了密钥的权利,并且一切正常。
, 不要忘记将私钥包含在证书存储中要安装的文件中,否则证书将不会显示在列表中。还要检查您是否使用了正确的FQDN作为证书的公用名,否则它也不会显示。
这是我所做的:
# generate key
openssl genrsa -des3 -out server.key 2048
# remove pass
openssl rsa -in server.key -out server.key
# generate sign request,be sure to include the correct FQDN
# (host name followed by primary dns suffix)
openssl req -new -key server.key -out server.csr
# generate self signed certificate
openssl x509 -req -in server.csr -signkey server.key -out server.crt
# include both the certificate and the private key in a PKCS12 keystore
# (leave the export key empty)
openssl pkcs12 -export -out server.p12 -inkey server.key -in server.crt
然后将server.p12文件添加到本地计算机的证书存储中(带有证书管理单元)。最后,您应该能够在SQL Configuration Manager中选择证书。
但是,如果服务器对您刚导入的私钥没有读访问权限,则它将无法启动。为此,您还必须赋予运行SQL Server的帐户(例如NETWORK SERVICE)适当的权限。只需右键单击刚导入的证书(在证书管理单元中),然后在“所有任务”下选择“管理私钥”。您可以在那里添加服务帐户并授予其读取权限。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。