惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Tenable Blog
Last Week in AI
Last Week in AI
P
Proofpoint News Feed
Engineering at Meta
Engineering at Meta
H
Help Net Security
F
Fortinet All Blogs
MyScale Blog
MyScale Blog
宝玉的分享
宝玉的分享
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 司徒正美
量子位
N
Netflix TechBlog - Medium
Apple Machine Learning Research
Apple Machine Learning Research
小众软件
小众软件
Recorded Future
Recorded Future
博客园 - 三生石上(FineUI控件)
Vercel News
Vercel News
aimingoo的专栏
aimingoo的专栏
I
InfoQ
Microsoft Security Blog
Microsoft Security Blog
Scott Helme
Scott Helme
The Last Watchdog
The Last Watchdog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
IT之家
IT之家
AI
AI
WordPress大学
WordPress大学
Security Archives - TechRepublic
Security Archives - TechRepublic
Google Online Security Blog
Google Online Security Blog
U
Unit 42
V2EX - 技术
V2EX - 技术
MongoDB | Blog
MongoDB | Blog
Schneier on Security
Schneier on Security
博客园 - Franky
H
Heimdal Security Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Jina AI
Jina AI
W
WeLiveSecurity
P
Privacy & Cybersecurity Law Blog
Cloudbric
Cloudbric
B
Blog RSS Feed
N
News | PayPal Newsroom
S
Securelist
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
I
Intezer
Hacker News - Newest:
Hacker News - Newest: "LLM"
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
博客园_首页
罗磊的独立博客
H
Hackread – Cybersecurity News, Data Breaches, AI and More
雷峰网
雷峰网

博客园 - tonyYe

请求筛选模块被配置为拒绝包含双重转义序列的请求。HTTP 错误 404.11 - Not Found asp.net页面传值方法汇总 - tonyYe - 博客园 Syntax error on line 198 httpd.conf: ServerAdmin takes one argument ASP.NET 2.0中Page事件的执行顺序 {转} EM 无法启动,重新完全配置EM ToString - tonyYe - 博客园 快捷方式制作 ListView导出到Excel TreeView的NodeCheck联动 利用js去除打印时的页眉页脚 使用证书来做RSA非对称式加密 Windows命令提示符大全 学习.net应该知道什么 C# 3.0新特性之扩展方法 针对构架师的.NET 3.0介绍 Microsoft .net 框架开发平台体系架构 MapGuide公共静态方法 查询保存在outlook里的用户名和密码 ASP.NET 2.0 GridView
用证书实现windows 2003下IIS的SSL安全通信
tonyYe · 2008-07-25 · via 博客园 - tonyYe

 随着Windows Server 2003操作系统的推出,Windows平台的安全性和易用性大大增强,然而,在默认情况下,IIS使用HTTP协议以明文形式传输数据,没有采取任何加密措施,用户的重要数据很容易被窃取,如何才能保护局域网中的这些重要数据呢?下面笔者就介绍一下如何使用SSL增强IIS服务器的通信安全。
一、什么是SSL
  SSL(Security Socket Layer)全称是加密套接字协议层,它位于HTTP协议层和TCP协议层之间,用于建立用户与服务器之间的加密通信,确保所传递信息的安全性,同时SSL安全机制是依靠数字证书来实现的。
SSL基于公用密钥和私人密钥,用户使用公用密钥来加密数据,但解密数据必须使用相应的私人密钥。使用SSL安全机制的通信过程如下:用户与IIS服务器建立连接后,服务器会把数字证书与公用密钥发送给用户,用户端生成会话密钥,并用公共密钥对会话密钥进行加密,然后传递给服务器,服务器端用私人密钥进行解密,这样,用户端和服务器端就建立了一条安全通道,只有SSL允许的用户才能与IIS服务器进行通信。

提示:SSL网站不同于一般的Web站点,它使用的是“HTTPS”协议,而不是普通的“HTTP”协议。因此它的URL(统一资源定位器)格式为“

https://网站域名”。

二、安装证书服务
  要想使用SSL安全机制功能,首先必须为Windows Server 2003系统安装证书服务。
  进入“控制面板”,运行“添加或删除程序”,接着进入“Windows组件向导”对话框,勾选“证书服务”选项,点击“下一步”按钮,接着选择CA类型。这里选择“独立根CA”,点击“下一步”按钮,为自己的CA服务器取个名字,设置证书的有效期限,最后指定证书数据库和证书数据库日志的位置,就可完成证书服务的安装。
三、配置SSL网站
  1.创建请求证书文件
  完成了证书服务的安装后,就可以为要使用SSL安全机制的网站创建请求证书文件。点击“控制面板→管理工具”,运行“Internet 信息服务-IIS 管理器”,在管理器窗口中展开“网站”目录,右键点击要使用SSL的网站,选择“属性”选项,在网站属性对话框中切换到“目录安全性”标签页(图1),然后点击“服务器证书”按钮。在“IIS证书向导”对话框中选择“新建证书”,点击“下一步”按钮,选择“现在准备证书请求,但稍后发送”。在“名称”输入框中为该证书取名,然后在“位长”下拉列表中选择密钥的位长。接着设置证书的单位、部门、站点公用名称和地理信息,最后指定请求证书文件的保存位置。这样就完成了请求证书文件的创建。

  2.申请服务器证书
  完成上述设置后,还要把创建的请求证书文件提交给证书服务器。在服务器端的IE浏览器地址栏中输入“

http://localhost/CertSrv/default.asp”。在“Microsoft 证书服务”欢迎窗口中点击“申请一个证书”链接,接下来在证书申请类型中点击“高级证书申请”链接,然后在高级证书申请窗口中点击“使用BASE64编码的CMC或PKCS#10....”链接,再打开刚刚生成的“certreq.txt”文件,将其中的内容复制到“保存的申请”输入框后点击“提交”按钮即可。
  3.颁发服务器证书
  点击“控制面板→管理工具”,运行“证书颁发机构”。在主窗口中展开树状目录,点击“挂起的申请”项(图2),找到刚才申请的证书,然后右键点击该项,选择“所有任务→颁发”。颁发成功后,点击树状目录中的“颁发的证书”项,双击刚才颁发的证书,在弹出的“证书”对话框的“详细信息”标签页中,点击“复制到文件”按钮,弹出证书导出向导,连续点击“下一步”按钮,并在“要导出的文件”对话框中指定文件名,最后点击“完成”。

4.安装服务器证书
  重新进入IIS管理器的“目录安全性”标签页,点击“服务器证书”按钮,弹出“挂起的证书请求”对话框,选择“处理挂起的请求并安装证书”选项,点击“下一步”按钮,指定刚才导出的服务器证书文件的位置,接着设置SSL端口,使用默认的“443”即可,最后点击“完成”按钮。
  在“目录安全性”标签页,点击安全通信栏的“编辑”按钮,勾选“要求安全通道(SSL)”选项,最后点击“确定”按钮即可启用SSL。
  在完成了对SSL网站的配置后,用户只要在IE浏览器中输入“

https://网站域名”就能访问该网站

一,服务器上装有CA(Certificate Server)
1,服务器上安装CA
Win2000中带有CA的安装程序。单击Start,Control Pannel Add/Remove Programs兵单击Add/Remove Windows Compenents。当Windows Component Wizard出现时,选择证书服务(Certificate Services)。下一步中,安装需要指出服务器授权的类型,一般作为一个独立的Web服务器,选择Stand-alone root CA。然后,需要指定共享文件夹,这作为证书服务的配置数据存储位置,单击Next,安装完毕。
注意:自己建立CA 机构时,所给CA机构起的名是自己定义的,在客户端的IE中,在一开始并不属于客户端信任的根证书颁发机构,如果,客户端没有把该CA机构加为自己所信任的根证书颁发机构,那么在客户端访问该服务器上的网站时,会出现安全警告信息。
2,建立并安装一个站点证书
步骤如下:
A, 打开IIS,选定要安装证书的站点,单击右键,选择弹出菜单中的properties,在弹出的对话框中,单击directory security属性页,单击Server Certificate按钮,出现IIS Certificate Wizard对话框,这一步的操作,所完成的功能是生成一个向CA申请数字证书的密钥文件,文件以.txt的格式存于本机目录下。
B, 通过Certificate Server Enrollment的页面访问注册控件和它的表格:
在安装了Certificate Service的机器上可以从位于

http://localhost/certsrv 的Certificate Server Administration Tools Web页面可以访问该注册控件。选择request a certificate 选项,在下一页面中选择advance request,这里需要注意的是,如果是给网站申请数字证书时必须选择该项,因为赋予网站的数字证书需要使用a步骤中所产生的特定的密钥文件,这样才能生成属于该网站的唯一的数字证书。而一般User certificate request 是针对需要访问该网站的客户设计的,分别有web browser certificate 和E-Mail Protection certificate 两种方式。客户采用web browser certificate方式申请对有SSL保护的网站的访问,而E-Mail Protection certificate是保护客户收发email时的信息传送。接下去页面的Advanced Certificate Requests 中我们选择Submit a certificate request using a base64 encoded PKCS #10 file or a renewal request using a base64 encoded PKCS #7 file。因为这种格式和在a步骤中所产生的密钥文件的加密格式一致。然后,可以通过browse把存在本机上的.txt密钥文件上载至网页上,递出申请。在最后的界面中,会被告知请求已经被接到并正在等待证书授权机构的批准。
C, 微软的Certificate Service可以使用MMC来管理:
服务器提出的要求数字验证的请求传递到CA机构中,打开Start/Program/Administrative tools/Certification Authority后,可以看到pending request文件夹,这个文件夹包含了所有等待root授权机构批准的证书请求。如果CA认证机构觉得该网站的申请可行,则单击右键选择issue,这样,该文件就被移到了issued Certificates,表示申请成功,这个节点包含了所有被证书服务的管理员批准并被发布的证书。反之如果CA机构觉得该申请不可行,则选择Deny,该文件被转移到Failed request,表示申请失败,这个节点包含了所有被拒绝的证书请求。对申请成功并发布的数字证书而言,如果CA机构想取消该证书,可以单击右键选择revoke,则已申请成功的数字证书被移到revoke certificates文件夹内,这个节点包含了所有被发布但是又被撤销的证书。
D, 提交数字验证的网站在等待一定时间后,依然可以通过http://localhost/certsrv来查看自己所申请的数字验证的进行情况。选择Check On A Pending Certificate选项并单击Next 按钮继续。从选项框中选择候选的请求,单击Next按钮继续。为下载该文件选择Base64 encoding并单击Download CA Certificate链接以开始下载过程。这样就从证书授权机构接到了服务器证书文件。打开IIS,选定已经得到数字验证的网站,单击右键后选择properties,在属性页directory security中,单击Server Certificate 按钮以启动Web服务证书向导,选择Process A Pending Request and Install Certificate选项。选择上一步骤中download下来的数字证书(即.cer文件)的存放路径,开始安装。安装成功后,directory security属性页中的view certificate和edit按钮由disable变为enable。整个网站的数字验证过程完毕。
3,关于certificate的属性设置
点击directory security属性页的edit按钮,可以进行网站数字验证属性的设置。首先,如果选择了require secure channel(SSL)复选框,则http的形式将无法访问该站点,只有采用https的方式进行访问。如果不选择该项的话,则http和https两种方式并存,都可以进行对此网站的访问。如果选择了该项,则又有三种方式可供选择,分别是ignore client certificate,accept client certificate 以及require client certificate。Ignore client certificate表示不接受客户证书(默认):如果客户浏览器安装了客户证书,会返回一个Access Denied消息。Accept client certificate表示接受证书:不管客户是否安装了客户证书对服务器没有区别,访问在两种情况下都是允许的。Ignore client certificate表示需要客户证书:除非客户有一个被root CA(这里是证书服务器)授予的合法证书,否则访问被拒绝。客户要访问网站,必须得先从服务器得到数字验证,也即,客户端必须首先向要访问的网站提出要求数字验证的申请,在得到服务器端发回的用于两者间信息交互的数字证书后,才可以对该网站进行访问,否则,网站将拒绝该客户的访问。
不同的网站可以针对这三个属性进行不同的设置。
4,客户端SSL的配置
在浏览器和Web站点之间开始SSL通信之前,客户端必须能够认出服务器的证书是合法的。要做到这一点,客户端必须和服务器的证书授权机构取得联系,在这种情况下是本地的证书服务器。如果没能实现前面的步骤,直接连到SSL站点,会首先接到安全警告信息。客户浏览器需要在浏览器的Trusted Root Store中安装证书。要安装证书,在安全警告对话框出现时,单击View Certificate按钮,就会出现一个对话框,该对话框中包含了证书的信息。单击Install Certificate 按钮以启动证书导入向导。
对客户而言,SSL的配置就相对比较简单,客户可以选择申请数字证书,也可以不用,只是,如果客户所访问的某个网站设定了require client certificate属性,则客户必须在得到了该网站的数字验证后,才能对此进行访问,换言之,客户想得到访问权,就必须先向网站提出申请。
客户通过访问http://servername/certsrv来申请数字验证,它的操作过程和网站申请数字验证基本雷同,只是它不是选择Advance request这一项,而是使用User certificate request 下的web browser certificate选项,只要填写客户的一些相应信息后,就能递出申请,而当CA机构认证后,也是从网上直接下载相对应的数字证书至本机。这样,每当访问该网站,当弹出要求客户端数字验证的消息框后,客户选择已经下载过的数字证书,就可以进行对网站的访问了。
注意事项:如果网站的端口号不是默认的80,而是自己定义的话,则相应的也要给SSL Port 设定一个端口号,以示区别,而访问http和https时,所输入的端口号是不一致的。如果网站使用默认的80端口,则SSL也不需要配置特定的端口号,它的默认端口号为443。

二,服务器和装有CA(Certificate Server)的计算机独立
网站申请数字证书的过程和前面部分一样。只是,上一部分的操作因为CA和服务器设在同一台机器上,所以,访问本机的

http://localhost/certsrv就可以了,而这一部分,因为CA和服务器的计算机独立,所以,申请的时候也和客户端一样,远程访问http://CAname/certsrv ,其中的具体操作和上一部分一样。只是,在这种情况下,该网站如果设置了require client certificate,则客户就很难访问该网站了,因为客户端无法向该网站发出要求数字验证的申请。一般而言,最好采用accept client certificate。