Microsoft . 技术之路...

—— 专注于微软技术, 分享是快乐的源泉......
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

在.net3.0 winfx程序的“数字证书”有效期延长问题

Posted on 2007-06-05 11:32  赣江源  阅读(634)  评论(0编辑  收藏  举报

        由于使用Winfx创建的Web应用程序发布后需要证书,但是使用vs2005自动创建的.pfx数字证书默认有效期只有一年,这样很容易就过期了,到下一年的时候需要重新更换证书发布程序,这样太麻烦了,并且“颁发者”、“颁发给”均为当前机器名和当前登陆用户名的组合,其实我们可以通过.netSDK自带的工具完全可以创建更友好的.pfx数字证书。

打开Microsoft .NET Framework 的SDK命令提示,这些工具在目录C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin下可以找到,按以下步骤操作:

1、创建一个自我签署的X.509证书(.cer)和一个.pvk私钥文件,用到makecert工具,命令如下:

makecert -r -n "CN=webwinfxxuyz" -ss my -b 01/01/2007 -e 01/01/2099 -sv keyName.pvk keyName.cer
其中
-sv keyName.pvk keyName.cer  意思是生成一个私匙和证书文件 keyName.pvk keyName.cer;
-n "CN=webwinfxxuyz"    其中的“webwinfxxuyz”就是签名中显示的证书所有人的名字,改为你想要的名字;
-ss my      指定生成后的证书保存在个人证书中(可以不加);
-r          意思是说证书是自己颁发给自己的;
-b 01/01/2007     指定证书的有效期起始日期,格式为 月/日/年,最低为1900年;
-e 01/01/2099     指定证书的有效期终止日期,格式同上,我想2099年应该够长了吧,不够自己改吧;

按提示设置私钥密码(也可以不使用密码)即可在当前目录生成相关文件

2、利用X.509证书(.cer)创建发行者证书 (.spc),用到cert2spc工具,命令如下:

cert2spc keyName.cer keyName.spc

3、从.pvk和.spc格式转换成.pfx格式,用到pvkimprt工具,pvkimprt工具下载地址如下
http://download.microsoft.com/download/vba50/Utility/1.0/NT5/EN-US/pvkimprt.exe;命令如下:

pvkimprt -pfx keyName.spc keyName.pvk

按提示操作可导出.pfx证书,若第1步设置了私钥密码,此处需要输入验证

4、在vs2005 winfxd项目的Signing证书签名设置处点击“从文件选择”浏览定位到第3步导出的.pfx证书,此处需要验证第3步中设置的证书私钥密码。