C#导入ssl安全证书的问题

仙剑 2013-01-13 03:47:44
近期遇到一个奇怪的问题,导入ssl证书并设置好绑定,重启机器,绑定就失效了。

我是用X509Certificate2操作ssl证书

首先将证书文件导入到本地计算机的个人存储区中


public static bool InstallCertificate(string certFilePath, string password, StoreLocation location, StoreName storeName)
{
try
{
if (!File.Exists(certFilePath))
{
SubDebug(string.Format("Certificate file not exist.\t{0}", certFilePath));
return false;
}
byte[] certData = File.ReadAllBytes(certFilePath);
X509Certificate2 cert = new X509Certificate2(certData, password,X509KeyStorageFlags.Exportable);
X509Store store = new X509Store(storeName, location);
store.Open(OpenFlags.MaxAllowed);
store.Remove(cert);
store.Add(cert);
store.Close();
SubDebug(string.Format("Certificate installed.\tCertificate file:{0}\tStore:{1}", certFilePath, storeName));
return true;
}
catch (Exception ex)
{
SubDebug(string.Format("Install certificate fail.\tCertificate file:{0}\t{1}\tStore:{1}", certFilePath, ex.Message));
return false;
}
}


然后在iis中添加一个ssl的绑定


SingleSite.Bindings.Add(string.Format("*:{0}:", port), byteCertHash, "MY");


这样做web站点可以正常打开打开,

但是重启机器之后 Web站点就打不开了!!!!

我是Windows2008 Server R2的系统。

进入iis 管理器重新编辑添加的绑定就会出错了:

There was an error while performing this operation.

Details:

A specified logon session does not exist.It may already have been terminated.


拜求大虾指导!高分酬劳!

...全文
546 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
漂泊_DY 2014-07-31
  • 打赏
  • 举报
回复
引用 1 楼 jian200801 的回复:
问题终于解决了 原来实例化X509Certificate2时,传入的X509KeyStorageFlags标志错了,改成如下就行了: X509Certificate2 cert = new X509Certificate2(certData, password,X509KeyStorageFlags.Exportable|X509KeyStorageFlags.MachineKeySet|X509KeyStorageFlags.PersistKeySet);
帮了我大忙了。一直提示soap 安全协商失败,证书是用程序添加到电脑里的,第一次添加进去没有问题,然后第二开始就报这个错了。。。把参数改成你说的就没问题了。多谢
cjl_852006 2013-06-06
  • 打赏
  • 举报
回复
请教 你是怎样用C#添加HTTPS到IIS站点的?
strife013 2013-01-13
  • 打赏
  • 举报
回复
恭喜恭喜
仙剑 2013-01-13
  • 打赏
  • 举报
回复
问题终于解决了 原来实例化X509Certificate2时,传入的X509KeyStorageFlags标志错了,改成如下就行了: X509Certificate2 cert = new X509Certificate2(certData, password,X509KeyStorageFlags.Exportable|X509KeyStorageFlags.MachineKeySet|X509KeyStorageFlags.PersistKeySet);

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧