KKP*_*KKP 5 certificate client-certificates
安装客户端证书后,我收到异常"对象仅包含密钥对的公共一半.还必须提供私钥".我的应用程序是在ASP.NET平台上运行的VC#.NET应用程序.该应用程序还使用WSE 2.0将证书导入到SOAP请求中.
经过研究,我发现此异常的类型为System.Security.Cryptography.CryptographicException.
我非常肯定我所有的WSE设置都配置正确,因为我能够通过subject-distinguished-name找到类似的证书.任何想法将不胜感激.
Ral*_*ner 14
我最近遇到了同样的问题.我在这里找到了一个对我有用的解释.具体来说,私钥的权限.完整信息复制如下.
我首先要看几件事:
- 你有这个证书的私钥吗?
- 您是否已授权您使用该应用程序访问私钥?
您可以通过Windows证书存储区查看证书来确定您是否拥有私钥.要实现此目的,请按照下列步骤操作:
- 从Windows"开始"菜单中,选择"运行".
- 在打开:字段中键入mmc.单击确定
- 从"文件"菜单中选择"添加/删除管理单元".
- 单击"添加"按钮.
- 从Available Standalone Snap-ins列表中选择"Certificates".单击"添加"按钮.
- 选择"计算机帐户".点击下一步.
- 选择"本地计算机".单击完成.
- 单击关闭.
- 单击确定.
- 展开"控制台根"下的"证书"节点,然后打开"个人"存储.
- 双击您正在使用的证书.如果您有私钥,对话框将在底部显示一条消息,显示"您有一个与此证书对应的私钥".
如果您有私钥,请确保您的应用程序有权访问密钥:
- 打开Windows资源管理器
- 导航到C:\ Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys文件夹.
- 选择包含WSE需要检索的密钥的文件.
- 从"文件"菜单中,选择"属性".
- 在"安全"选项卡上,添加ASPNET帐户并选择"完全控制"选项.
- 注意:1.确定MachineKeys文件夹中的哪个密钥文件与证书关联可能很困难.一种简单的方法是记录创建新证书时的创建日期和时间.查看MachineKeys目录中的文件时,请检查"修改日期"字段以查找相应的日期和时间.2.如果您已将系统配置为在与ASPNET不同的帐户下运行,请在授予访问证书的权限时使用该帐户.