手把手配置https
对称算法
密钥是什么,序列号,一串字,总之要加密算法通过他来加密,比如密钥就是5,加密算法是+1,我的原文是1,加密后就是6,
别人解密也是一样,加密算法的逆运算 6-5 得到原文.
要求,加密算法公开,
非对称加密(没有简单的例字)公钥加密私钥解,私钥加密公钥解.经典算法(RSA),IIS有提供.
证书包括什么?
证书就是一段加密文字(一般用base64加密),包括身份信息,域名信息,有效期,公钥,算法,被私钥加密的字段.
客户一般是用公钥解密被私钥加密的字段去比对身份信息是否一样,对比域名是否和url一样等等.
单向SSL认证,客户端认证
一进网站,ssl协议就会让你下该网站证书(如果你没下),你下了,下次就不用下了(不知道存哪了).因为你要下下来才能读的(IE都要下载才能读)
然后你读他证书,最简单的讲法是,你自己随机个密码,一个对称算法,用服务器公钥加密,告诉服务器,服务知道后,握手结束,
开始用对称加密算法,进行通讯了.
双向SSL认证
基本一样,你读了服务器证书后,服务器要读你证书,基本一样,用你证书的公钥去读你的加密的东西,看看你证书是不是在做废证书里面
然后浏览器选一些自己支持的加密算传给服务器,服务器选个高级点的用
客户的公钥加过密后通知浏览器。
⑧ 浏览器针对这个密码方案,选择一个通话密钥,接着用服务器的公钥加过密后发送给服务器。
⑨ 服务器接收到浏览器送过来的消息,用自己的私钥解密,获得通话密钥。
⑩ 服务器、浏览器接下来的通讯都是用对称密码方案,对称密钥是加过密的。
详细可见:http://www.cnblogs.com/asyuras/archive/2005/05/13/154599.aspx
配制要求
windows2003,iis
建个站点(一定是站点,不是虚拟),
下面是抄的.
一.生成证书申请(自己做个证书)
此过程创建一个新的证书申请,此申请可发送到证书颁发机构 (CA) 进行处理。如果成功,CA 将给您发回一个包含有效证书的文件。
? 生成证书申请
1.
启动 IIS Microsoft 管理控制台 (MMC) 管理单元。
2.
展开 Web 服务器名,选择要安装证书的 Web 站点。
3.
右键单击该 Web 站点,然后单击“属性”。
4.
单击“目录安全性”选项卡。
5.
单击“安全通信”中的“服务器证书”按钮,启动 Web 服务器证书向导。
注意:如果“服务器证书”不可用,可能是因为您选择了虚拟目录、目录或文件。返回第 2 步,选择 Web 站点。
6.
单击“下一步”跳过欢迎对话框。
7.
单击“创建一个新证书”,然后单击“下一步”。
8.
该对话框有以下两个选项:
? “现在准备申请,但稍后发送”
该选项总是可用的。
? “立即将申请发送到在线证书颁发机构”
仅当 Web 服务器可以在配置为颁发 Web 服务器证书的 Windows 2000 域中访问一个或多个 Microsoft 证书服务器时,该选项才可用。在后面的申请过程中,您有机会从列表中选择将申请发送到的颁发机构。
单击“现在准备申请,但稍后发送”,然后单击“下一步”。
9.
在“名称”字段中键入证书的描述性名称,在“位长”字段中键入密钥的位长,然后单击“下一步”。
向导使用当前 Web 站点名称作为默认名称。它不在证书中使用,但作为友好名称以助于管理员识别。
10.
在“组织”字段中键入组织名称(例如 Contoso),在“组织单位”字段中键入组织单位(例如“销售部”),然后单击“下一步”。
注意:这些信息将放在证书申请中,因此应确保它的正确性。CA 将验证这些信息并将其放在证书中。浏览您的 Web 站点的用户需要查看这些信息,以便决定他们是否接受证书。
11.
在“公用名”字段中,键入您的站点的公用名,然后单击“下一步”。
重要说明:公用名是证书最后的最重要信息之一。它是 Web 站点的 DNS 名称(即用户在浏览您的站点时键入的名称)。如果证书名称与站点名称不匹配,当用户浏览到您的站点时,将报告证书问题。
如果您的站点在 Web 上并且被命名为 www.qqview.com,这就是您应当指定的公用名。
如果您的站点是内部站点,并且用户是通过计算机名称浏览的,请输入计算机的 NetBIOS 或 DNS 名称。
12.
在“国家/地区”、“州/省”和“城市/县市”等字段中输入正确的信息,然后单击“下一步”。
13.
输入证书申请的文件名。
该文件包含类似下面这样的信息。
-----BEGIN NEW CERTIFICATE REQUEST-----
MIIDZjCCAs8CAQAwgYoxNjA0BgNVBAMTLW1penJvY2tsYXB0b3Aubm9ydGhhbWVy...
-----END NEW CERTIFICATE REQUEST-----
这是您的证书申请的 Base 64 编码表示形式。申请中包含输入到向导中的信息,还包括您的公钥和用您的私钥签名的信息。
将此申请文件发送到 CA。然后 CA 会使用证书申请中的公钥信息验证用您的私钥签名的信息。CA 也验证申请中提供的信息。
当您将申请提交到 CA 后,CA 将在一个文件中发回证书。然后您应当重新启动 Web 服务器证书向导。
14.
单击“下一步”。该向导显示证书申请中包含的信息概要。
15.
单击“下一步”,然后单击“完成”完成申请过程。
证书申请现在可以发送到 CA 进行验证和处理。当您从 CA 收到证书响应以后,可以再次使用 IIS 证书向导,在 Web 服务器上继续安装证书。
二,自己做个证书服务器(自己做的东西自己通过)
详细:http://www.dvbbs.net/tech/server/200602158821.asp
下面,我就介绍一下如何在Windows2000server/.NET中开启CA服务。
1、首先请确认您的服务器已经安装配置了Active Directory服务,这样您就可以给域中的用户颁发数字证书。当然AD服务不是安装CA服务的必要条件,如果仅仅左测试使用,您可以不安装AD服务;
2、确保在您的Windows2000server/.NET中开启IIS服务,并且支持ASP,这样您的CA服务可以通过WEB在INTERNET/INTRANET发布;
3、开始-->设置-->控制面板-->添加/删除程序-->添加/删除Windows组件-->选中证书服务;
4、然后选择合适的CA类型,这里我们选择独立的根CA;
5、如果你要改变微软的默认密钥设置,你可以选中高级选项;一般,我们直接进入下一步;
6、在这里输入您这个CA的详细信息;
7、然后指定存储配置数据、数据库和日志的位置;
完成安装向导,系统开始安装CA服务;
然后,您可以通过如下方式访问认证服务器: http://安装认证服务器IP地址/certsrv 在这里,您可以申请一张证书,查看证书请求状态还有下载根证书。
三,把自己做的证书向自己做的服务器申请审批
提交证书申请
1.
使用“记事本”打开在前面的过程中生成的证书文件,将它的整个内容复制到剪贴板。
2.
启动 Internet Explorer,导航到 http://hostname/CertSrv,其中 hostname 是运行 Microsoft 证书服务的计算机的名称。
3.
单击“申请一个证书”,然后单击“下一步”。
4.
在“选择申请类型”页中,单击“高级申请”,然后单击“下一步”。
5.
在“高级证书申请”页中,单击“使用 Base64 编码的 PKCS#10 文件提交证书申请”,然后单击“下一步”。
6.
在“提交一个保存的申请”页中,单击“Base64 编码的证书申请(PKCS #10 或 #7)”文本框,按住 CTRL+V,粘贴先前复制到剪贴板上的证书申请。
7.
在“证书模板”组合框中,单击“Web 服务器”。
8.
单击“提交”。
9.
关闭 Internet Explorer。
四.自己给自己颁发证书
颁发证书
1.
从“管理工具”程序组中启动“证书颁发机构”工具。
2.
展开您的证书颁发机构,然后选择“挂起的申请”文件夹。
3.
选择刚才提交的证书申请。
4.
在“操作”菜单中,指向“所有任务”,然后单击“颁发”。
5.
确认该证书显示在“颁发的证书”文件夹中,然后双击查看它。
6.
在“详细信息”选项卡中,单击“复制到文件”,将证书保存为 Base-64 编码的 X.509 证书。
7.
关闭证书的属性窗口。
8.
关闭“证书颁发机构”工具。
五,自己安装自己做的证书.
在 Web 服务器上安装证书
此过程在 Web 服务器上安装在前面的过程中颁发的证书。
? 在 Web 服务器上安装证书
1.
如果 Internet 信息服务尚未运行,则启动它。
2.
展开您的服务器名称,选择要安装证书的 Web 站点。
3.
右键单击该 Web 站点,然后单击“属性”。
4.
单击“目录安全性”选项卡。
5.
单击“服务器证书”启动 Web 服务器证书向导。
6.
单击“处理挂起的申请并安装证书”,然后单击“下一步”。
7.
输入包含 CA 响应的文件的路径和文件名,然后单击“下一步”。
8.
检查证书概述,单击“下一步”,然后单击“完成”。
现在,已在 Web 服务器上安装了证书。
六,哪些资源要看认证
将资源配置为要求 SSL 访问
此过程使用 Internet 服务管理器,将虚拟目录配置为要求 SSL 访问。您可以为特定的文件、目录或虚拟目录要求使用 SSL。客户端必须使用 HTTPS 协议访问所有这类资源。
? 将资源配置为要求 SSL 访问
1.
如果 Internet 信息服务尚未运行,则启动它。
2.
展开您的服务器名称和 Web 站点。(这必须是已安装证书的 Web 站点)
3.
右键单击某个虚拟目录,然后单击“属性”。
4.
单击“目录安全性”选项卡。
5.
单击“安全通信”下的“编辑”。
6.
单击“要求安全通道 (SSL)”。
现在客户端必须使用 HTTPS 浏览到此虚拟目录。
7.
单击“确定”,然后再次单击“确定”关闭“属性”对话框。
8.
关闭 Internet 信息服务。
做这个实验的时候要注意你新建的网站的端口号是80,因为如果你的地址是http://localhost:2008/***的话,你的证书上的
域名也应该是带端口号的.
下面是如果获得客户端证书.(如果ssl需要客户端证书的话)
http://www.microsoft.com/technet/prodtechnol/windowsserver2003/zh-chs/library/ServerHelp/6c936415-6872-4092-9a27-23c97f744805.mspx?mfr=true
获得客户端证书
1.
在 Web 浏览器中,打开 http://servername/certsrv 处用于从 CA 申请证书的表单,其中 servername 是您要访问的 CA 所位于的 Web 服务器的名称。
2.
依次单击“申请一个证书”、“高级证书申请”,然后单击“创建并向此 CA 提交一个申请”。
3.
键入所需信息以及需要的其他任何选项,包括:
? 在“需要的证书类型”下选择“客户端身份验证证书”。
? 选择“使用本地机器存储”。
? 选择“标记密钥为可导出”。
4.
单击“提交”,然后执行以下操作之一:
? 如果看到“证书挂起”网页,请检查挂起的证书申请。
? 如果看到“证书已颁发”网页,则单击“安装此证书”。
5.
如果已使用完“证书服务”网页,请关闭 Internet Explorer。
获得客户端证书后,请验证它是否在您的个人存储区中,以及是否有效。为此:
1.
打开“证书”MMC 管理单元。(运行MMC,添加)
2.
在“证书(本地计算机)(注意是本地计算机哦)”下的“个人”存储区中找到已安装的客户端证书,然后双击该证书以验证它。
确信客户端证书有效之后,按如下所述将其复制到 MSMQ 证书存储区:
1.
打开“证书”MMC 管理单元。
2.
在证书(本地计算机)之下的“个人”存储区中定位所安装的客户证书。
位置
? 控制台根节点/证书(本地计算机)/个人/证书
3.
(这步你要新添个证书插件你才会发现,MSMQ机子默认不装)用鼠标拖动证书将其移动到“证书”管理单元中“证书 - 本地计算机上的服务(消息队列)”下的“MSMQ\个人”存储区中。
位置
? 控制台根节点/证书 - 本地计算机上的服务(消息队列)/MSMQ\个人/证书
注意
? 要打开“证书”管理单元,请依次单击“开始”、“运行”,键入 mmc,然后单击“确定”。在“文件”菜单上单击“添加/删除管理单元”,然后单击“添加”。选择“证书”,然后单击“添加”。选择“服务帐户”,单击“下一步”,再选择“本地计算机(正在运行此控制台的计算机)”,然后单击“下一步”。在“服务帐户”中选择“消息队列”,然后单击“完成”。使用完 MMC 控制台后可以保存设置,以便下次打开控制台时可以使用自定义 MMC。
? 要检查挂起的证书申请,请在 CA 网页中单击“查看挂起的证书申请状态”。如果看到了挂起的证书,请选中要检查的证书申请,然后单击“下一步”。如果状态为“仍然挂起”,则必须等待 CA 的管理员颁发证书。状态为“已颁发”时,如果要安装证书,请单击“安装此证书”。如果状态为“已拒绝”,请联系 CA 管理员以获得更多的信息。
? 请注意,申请客户端证书之前,可能需要使 CA 网页成为 Internet Explorer 的受信任的站点。为此,请在 Internet Explorer 的“工具”菜单上,单击“Internet 选项”。在“安全”选项卡上单击“受信任的站点”,然后单击“站点”。取消选中“该区域中所有站点都需要服务器验证 (https:)”。键入 http://servername,然后单击“添加”。
? 不必要将客户端证书存放接收计算机本地上,但接收计算机必须能够访问客户端证书。
? 此任务只能从安装在 Windows Server 2003 家族域控制器上的消息队列服务器中执行。
这是MS提供的方法,但怎么实验也没有成功,后来我是这样做成功的,申请个web浏览器证书,然后安装,这样就是会导入到IE里面去
在IE里面的选项里面看内容,证书里面会有你刚安装的证书,一般来讲用导入导出来保存证书文件,
这里要注意的是,服务器是自己的IIS里面做个证书,类别是服务器的,个人要申请个人证书,在申请的时个一般要选高级,因为
里面有个导出私钥的选项,一般选了后你的证书才可以随身带,如果不选,你把证书导出过因为没有密钥,所以也用不了.
当你在申请证书的网站点击安装,证书就会把文件放到你IE里,这时你可以导出导入,但要记住的事,密钥一定也要导出导入.
asp.net可以能过Request.ClientCertificate来访问证书.
但如何用vs调试https项目,我始终不知道
posted on
2008-07-31 17:57
草原和大树
阅读(
1345 )
评论()
编辑
收藏
举报