【qqchen79(知秋一叶)】谢谢你提供的连接,不过还有一个问题请教你。谢谢!

kangqiao5 2002-08-28 07:42:25
【qqchen79(知秋一叶)】谢谢你提供的连接,不过还有一个问题请教你。
谢谢!

我下载开发包后,调试Samples\QuickStart\X509Signing 实例一直没有成功。问题是这样的:
我在网上免费申请了一个X.509的证书,并且安装到本地的电脑上,
同时安装了相应的ROOT证书。

一般而言,证书中含有 公钥, 但是 私钥 不知道在哪里?
目前我的问题是已经获得了X.509的证书,并且显示:
您有一个与该证书对应的私钥。

但是,在程序中访问该证书的属性PrivateKey时,出现异常:
No Private Key Available for this certificate.
不知问题在哪里,请指教!

谢谢!
...全文
14 点赞 收藏 22
写回复
22 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
kangqiao5 2002-09-09
ok. Thanks!
回复
kangqiao5 2002-09-04
谢谢!

可以把你在http://ca.barmala.com/申请的证书,EMAIL给我试试吧?

不会对你有什么影响的吧?

Thanks and regards.
回复
kangqiao5 2002-09-04
可以把你在http://ca.barmala.com/申请的证书,EMAIL给我试试吧?
回复
kangqiao5 2002-09-04
谢谢!

请问你使用的MSIE是多少版本?
会不会是这个问题?
回复
qqchen79 2002-09-04
我是用第二种。
>> 弹出一个对话框【安全级被设置为中级】,我没有理会,直接点击确定,然后生成证书。

我也是这样。
回复
kangqiao5 2002-09-04
刚才我又通过http://ca.barmala.com/申请了两个证书:
1,是通过选择Automatic Certificate Request (reliable but insecure)项时,生成的证书可以通过测试;
2,是通过选择Internet Explorer 5.x项时,弹出一个对话框【安全级被设置为中级】,我没有理会,直接点击确定,然后生成证书。该证书无法通过测试,出现No Private Key Available for this certificate.异常!
==========

请问你是通过那种方式申请证书的?谢谢!
如果是通过第二种方式,请问在出现对话框【安全级被设置为中级】时,你是如何操作的?谢谢!

regards,
回复
kangqiao5 2002-09-03
方面的异常发生在客户端,还没有调用Web Services.

感觉来自Win2000 Server证书和来自http://ca.barmala.com/的证书的
区别在如下方面:
1,win2000 Server的证书直接接着 【根证书】,没有中间证书;
而来自http://ca.barmala.com/的证书有中间证书certmaster,可能是由于这个区别造成的吗?

2,两种证书在签名算法等一些细节方面存在差异,感觉这不是问题的原因。

你有何高见?谢谢!!!
回复
kangqiao5 2002-09-03
谢谢qqchen79(知秋一叶)的耐心答复!!!

现在,我仍然无法理解为什么来自http://ca.barmala.com/网站来申请免费的证书,在运行是发生No Private Key Available for this certificate.异常!

如下是证书信息的第二页(详细信息):
秘钥用法:Digital Signature, Non-Repudiation, Key Encipherment, Data Encipherment, Certificate Signing, Off-line CRL Signing, CRL Signing (f6)

实在不知问题出在哪里?
你可以帮我分析一下吗?

万分感谢!
回复
qqchen79 2002-09-03
不幸的消息,我从http://ca.barmala.com/申请了一个证书,通过了X509Signing的测试。:(
现在我就没办法说你的失败的原因了。不过我觉得你应该先在localhost上试试看,即Server和Client都在一台机器上。这样避免了证书安装不一致的问题(我觉得这可能是最主要的问题)。还有verifyTrust="false" allowTestRoot="false"一定要先设上,不然在Verify Root和Trust上可能过不了。
回复
qqchen79 2002-09-02
我还真不知道我们公司用的CA服务器是什么。:)
不过我们的admin是个Windows忠实fans,除了Certificate Server,不太会用别的。
回复
qqchen79 2002-09-01
忘了说,应该去newsgroup看看,那里有ms的大虾们撑着。
microsoft.public.webservices.wsdk
回复
qqchen79 2002-09-01
>> 1)察看证书的时候可以看到有关keyuse的信息,一定要可以用于Signature才可以。---不知怎么看?????
在证书信息的第二页上(details),会有keyuse这一项,不过多数免费的证书都不包含这个,这也是不能用于签名或者被服务器据收的一个原因。所以最好能找一个包含keyuse,并且允许Digital Signature的证书(可以试试Certificate Server)。

>> (2)你可以去verisign申请一个---我去verisign看过来,好像没有提供免费的证书服务;
有,很难找,不过很遗憾,它也不包含keyuse这一项(因为是免费的),所以可能出现上面说的情况——被服务器据收。(也就是Invalid Keytoken Exception)。:(

>> (3)自己安装一个CA服务器---我在Win2000 Server下,安装了Microsoft的证书服务,申请了证书。但是还是存在An invalid security token was provided.的异常。以前的No Private Key Available for this certificate. 异常没有了。
这个异常是WebService Server返回来的(在执行Service代码之前,wsdk会加很多验证,如果不通过就直接被打回来了),至少这个证书在Client端工作了:)。在Server端出现异常有两种可能,一是前面说的keyuse,你需要在看一下证书是否支持;二是Trust path的问题,你可以用没有Trust path的证书签名,但是Server收到这样的签名之后会据收(挺合理的,不过给我们测试添了不少麻烦)。可以通过修改web.config来disable这个检查:
<microsoft.wsdk>
<security>
<x509 storeLocation="LocalMachine" verifyTrust="false" allowTestRoot="false" />
</security>
</microsoft.wsdk>

由于关系到安全问题,wsdk的处理似乎非常谨慎,安全和方便本来就是冲突的。:( 所以要把这个sdk弄转了还真的下些功夫。
而且现在还只是preview,wsdk自己有bug也是很有可能的。
回复
kangqiao5 2002-09-01
想请教一下,你公司内部的CA服务器是什么软件???

Thanks again.
回复
kangqiao5 2002-09-01
我已经将Win2000 Server中证书服务提供的certnew.cer安装在Win XP下了,并且可以正确解析来自Win2000 Server中证书服务机构提供的证书。
不过仍旧需要添加
<x509 storeLocation="LocalMachine" verifyTrust="false" allowTestRoot="false" />
回复
kangqiao5 2002-09-01
非常感谢qqchen79(知秋一叶)大侠的解答!!!
通过添加如下语句:
<x509 storeLocation="LocalMachine" verifyTrust="false" allowTestRoot="false" />
现在从Win2000 Server的证书服务机构获得的证书可以测试通过了,而从http://ca.barmala.com/获得的证书仍然不能通过测试,问题仍旧是:No Private Key Available for this certificate. 异常!
不过,还存在一些疑问不明白:
1,在证书信息的第二页上(details),会有keyuse这一项,不过多数免费的证书都不包含这个,这也是不能用于签名或者被服务器据收的一个原因。所以最好能找一个包含keyuse,并且允许Digital Signature的证书(可以试试Certificate Server)。
===证书信息的第二页(详细信息),有秘钥用法:Digital Signature, Non-Repudiation, Key Encipherment, Data Encipherment, Certificate Signing, Off-line CRL Signing, CRL Signing (f6)
应该是你说的Keyuse这一项吧!上面是来自http://ca.barmala.com/获得的证书。存在No Private Key Available for this certificate. 异常。
2,是Trust path的问题,你可以用没有Trust path的证书签名,但是Server收到这样的签名之后会据收
===如何查看Server端有没有Trust path的证书签名?谢谢!
3,newsgroup
===由于我在校园网内,没有办法连接该newsgroup。谢谢!

谢谢大侠的回复!
回复
kangqiao5 2002-08-31
To: qqchen79(知秋一叶)
谢谢你的回复,但是目前我仍然没有解决问题。
你说:(1)察看证书的时候可以看到有关keyuse的信息,一定要可以用于Signature才可以。---不知怎么看?????
(2)你可以去verisign申请一个---我去verisign看过来,好像没有提供免费的证书服务;
(3)自己安装一个CA服务器---我在Win2000 Server下,安装了Microsoft的证书服务,申请了证书。但是还是存在An invalid security token was provided.的异常。以前的No Private Key Available for this certificate. 异常没有了。
===
我将asp.net帐户的权限设置:
machine--->SYSTEM
另外可以确认证书没有过期。

(4)好像证书没有TrustPath,没有合法的Root也可以用。---我也同意你的观点。
===========
你公司内部的CA服务器是什么软件???
我存在的问题只有你可以解答了,希望能得到你的进一步答复。
谢谢!
回复
kangqiao5 2002-08-29
谢谢你的帮助!
我在实施试试看!

Thanks again!
回复
qqchen79 2002-08-29
>> 1,你测试的时候,通过了该示例吗?Samples\QuickStart\X509Signing
通过了。

>> 2,你从哪里申请的免费X.509的证书的?
公司内部的CA。

>> 3,你可以将你使用的证书Email给我吗?包括证书和对应的秘钥。可以导出的。
这个好像...

察看证书的时候可以看到有关keyuse的信息,一定要可以用于Signature才可以。你可以去verisign申请一个,或者自己安装一个CA服务器。(好像证书没有TrustPath,没有合法的Root也可以用。)
回复
kangqiao5 2002-08-29
1,不知示例中对X.509证书有没有什么要求?比如说客户端的证书,服务器端的证书,Email的证书......。我发现如果通过Windows 2000 Server中的证书授权服务来申请时,需要指定证书的类型。
2,我也通过http://ca.barmala.com/网站来申请免费的证书,可是在使用时出现上面我提到的错误异常。

我的Email: rickielee@963.net

Thanks and best regards!
回复
kangqiao5 2002-08-29
谢谢你的答复!
MS的帮助文档,我看了很多遍,而且完全是按照上面的步骤来做的。
我怀疑存在的问题是:我申请的证书X.509 Certificate有问题。
我想问你:
1,你测试的时候,通过了该示例吗?Samples\QuickStart\X509Signing
2,你从哪里申请的免费X.509的证书的?
3,你可以将你使用的证书Email给我吗?包括证书和对应的秘钥。可以导出的。

非常感谢!!!
回复
加载更多回复
相关推荐
发帖
Web Services
创建于2007-09-28

1.2w+

社区成员

.NET技术 Web Services
申请成为版主
帖子事件
创建了帖子
2002-08-28 07:42
社区公告
暂无公告