在调整Web代理代码时,我注意到如果我在带有UAC(用户访问控制)的应用程序中运行代码,我会收到异常
以下是抛出异常的位置:
sslStream.AuthenticateAsServer(_certificate, false, SslProtocols.Tls | SslProtocols.Ssl3 | SslProtocols.Ssl2, false);
这是我得到的错误(使用UAC)
The server mode SSL must use a certificate with the associated private key.
第一个问题:为什么?
第二个问题:还有其他选择吗?我真的想在UAC中运行它(注意http工作正常)
答案 0 :(得分:0)
听起来您的证书的私钥可能位于文件访问受限的地方。这样不仅任何用户都可以读取您的私钥。以有限的权限运行服务的目的是什么?如果该密钥仅用于此服务,您可以考虑删除其所在文件夹的安全限制,但如果此密钥适用于您的整个域,我会犹豫不决...
答案 1 :(得分:0)
您是否已将证书安装在相应的证书库中?
根据我记得使用证书时,您加载的文件仅用作在其中一个Windows证书库中标识服务器证书的参考。如果代理在一个帐户下运行但在另一个帐户下运行,则可能是您没有在其他帐户的个人证书存储中安装证书。