我有一个应用程序使用带有证书类型的消息凭据的 WCF SOAP 服务。我生成了开发级证书,以便在使用 makecert 进行开发/测试期间使用,现在我已准备好将我的代码推广到下一个环境。为此,我想获得生产级证书。
在与我们的一位系统代表合作后,我可以获得客户端证书的 PFX 文件。这是生成证书的 OpenSSL 配置:
[req] # openssl req params
prompt = no
distinguished_name = MyName.Client
[MyName.Client]
C = US
ST = New York
O = MyCompany
OU = MyUnit
CN = MyName
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always
basicConstraints = critical,CA:FALSE
我们在其中一台服务器上使用 Microsoft 证书服务(我不太熟悉)来生成 MyName.Client.cer 和 MyName.Client.key 文件。我们有一个名为 MyCA.cer 的根授权证书。然后,我们使用 OpenSSL 从 MyName.key、MyName.Client.cer 和 MyCA.cer 生成 MyName.pfx。我安装了 MyName.Client.pfx、MyCA.cer 和 MyCA.crl,并从 Service Trace 文件中得到以下异常:
The X.509 certificate CN=MyName.Client, OU=MyUnit, O=MyCompany, S=New York, C=US chain building failed. The certificate that was used has a trust chain that cannot be verified. Replace the certificate or change the certificateValidationMode. The revocation function was unable to check revocation because the revocation server was offline.
所以我被困住了。我是一个有证书的菜鸟,并认为这将是直截了当的。我们打算在最终环境中使用 GeoTrust 证书。我们为他们做了很多生意。我试图弄清楚如何告诉我们的系统人员如何从 GeoTrust 为我的应用程序获取证书。在我看来,由于我的应用程序与我应该能够安装它们的开发证书一起使用,所以只需更改我的配置以查找新证书。我错了吗?
提前感谢您的帮助。