- 手把手配置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项目,我始终不知道
相关文章: