如何启用IIS的SSL加密
首先说明, 该教程仅针对Windows2003 英文标准版, 其他服务器操作系统仅做参考
另外, 桌面操作系统(Windows XP, Windows 2000)是没有SSL服务的
由于文章太长,请点击进来再看。
- 首先以系统管理员身份登陆
- 打开"Add/Remove Windows Components"
- 选择添加删除Windows组件
- 勾选Certificate Service前面的勾, 并且要保证该组件里面包含的两个组件都被选中
- 点击"Next"按钮, 让你选择CA的类型, 由于我们是自己做独立的CA, 所以选择"Stand-alone rootCA"
如果勾选下面的"Use custom setting to generate the key pair and CA
certificate"则会让你选择加密算法
我们这里是第一次安装, 并且我不懂算法, 所以不勾选, 用默认算法
- 点击"Next"按钮, 会让你输入"证书颁发机构的名称", 你装了证书服务, 你就是证书办法机构,所以这个名字就是自己随便起的名字. 由于不清楚修改"Distingushed name suffix"会带来什么影响,所以请保持默认值. 最下面还能选择证书的有效期.
- 选择证书数据库的路径, 保持默认值
- 会提示你"如果完成安装, "Certificate Service""服务会暂停IIS, 点击"确定"
- 此时查看一下IE中的证书颁发机构, 会发现我们自己.
- 打开IIS管理器, 你会发现多了3个文件夹
- 在"Default Web Site"上点右键, 选择"Properties"
- 选择"Directory Security"
- 点击"Server Certificate"按钮, 出现了服务器证书管理的界面
- 可以执行下列操作, 我们选择第一个"Create a new certificate"
- 选择证书请求方式: 先生成请求代码, 以后发送请求, 还是立即请求, 我尝试了一下,发现立即请求不会选择自己的电脑作为证书颁发机构, 所以这里选择第一项
- 为请求的证书输入一个名字, 名称无所谓, 下面可以选择加密算法, 我们用默认值
- 输入你的公司名称, 组织名称
- 输入被颁发者名称. 这 个名称最好使用自己的域名, 否则在用HTTPS浏览时会弹出提示说被颁发人的名字跟网站域名不匹配.
如果不输入域名, 在访问时就能得到下面的对话框, 显得我们多不专业啊
- 输入自己所在的区域
- 选择证书请求文件的存放路径, 我们在向CA提交请求的时候, 会用到这个文件的内容
- 核对一下信息
- 完成
- 在IIS管理器里面点击CertSrv, 选择Browse, 就出现了请求证书的程序
- 点击"Request a certificate"之后
- 点击"Advanced certificate request"之后
- 点击"Submit a certificate request by using abase-64-encoded......."之后在certificate request框中粘贴刚才生成的证书请求文件的内容, 点击"Submit"
- 系统会告诉你, 你的证书申请已经提交, 请等待2-3天, 等CA批准, 然后你就能到这里来下载你的证书了.如果10天之内你不来下载已经签发的证书, 则证书会失效, 你要重新申请.实际上我们自己就是CA, 用不着等啦, 马上去签发证书.
- 回到第一个界面, 点击"View the status of a pending certificaterequest", 查看自己证书的申请状态
- 你会发现你有一个申请记录
- 点击该记录, 会告诉你申请进展看来我们的证书还没有被批下来, 此时我们可以点击"Remove"按钮来取消申请. 现在别点啊, 除非你真不想申请了.
- 点击"Download a CA certificate, certificate chain, or CRL"
- 点击"install this CA certificate chain"
- 系统会提示你这个网站要向你的浏览器安装一个证书, 点"确定"
- 提示你安装成功, 这样我们就对这个CA产生了信任, 如果不安装CA的证书, 我们是无法信任这个CA的
- 点击"Start", "Administrative Tools", "CertificationAuthority", 进入我们的证书颁发程序
- 证书管理界面我们点击左边的"Pending Requests", 来查看请求中的证书, 会发现我们请求的证书就在这里
- 在该证书上点鼠标右键, 选择"All Tasks", "Issue"
- 点击左边的"Issued Certificates"查看已经颁发的证书. 嗯, 不错.
- 如果证书没有颁发成功, 请google原因,这里给出一个可能的出错原因,就是你没有信任该CA
或者在刚才申请证书的页面上, 重新安装一下CA的证书链,(未经测试)
- 回到证书申请的程序
- 选择"View the status of a pending certificate request",点击出现的申请记录, 会发现可以下载证书了
- 点击"Download certificate", 会弹出下载对话框, 此时最好不要点"Open",否则后面会麻烦一些.点击"Save"
- 回到"Default Web Site"的"属性", "Directory Security", "ServerCertificate"
- 选择"Process the pending request and install thecertificate", 点击"Next"
- 选择刚才保存的证书文件
- 设定SSL端口, 默认443, 无需更改
- 安装摘要
- 安装成功
- 点击"Finish"之后, 会发现"View Certificate"按钮可用了, 点击该按钮, 会出现证书信息.我们可以看到是"My CA"颁发给"localhost"的
- 回到上一个窗口, 点击"Edit". 如果需要对该网站所有的页面都使用SSL加密, 则"Require securechannel(SSL)"需要打勾, 打勾之后, 下面的"Require 128-bitencryption"也可以勾选了. 但是我们不需要, 我们只要能通过程序控制登陆页面等少数几个数据敏感页面采用SSL传输就可以了, 所以"Require secure
channel(SSL)"不需要打勾.
- 测试一下, 输入http://开头的地址, 能正常浏览
- 输入https://开头的地址, 也能正常浏览, 只是IE的状态栏出现了一把锁的图标
- 我们刚才是把证书颁发给"localhost"的, 通过https://localhost访问没问题,但是如果通过http://127.0.0.1访问呢?就会出现下面的提示, 说你请求的网址跟证书里说明的不一样, 如果想查看证书的内容, 可以点击"View Certificate"
也可以点"Yes", 说明你本人相信证书指定的网站就是你现在访问的网站, 否则就点"No"
- 如果一个使用SSL传输的页面里面包含一个没有加密的对象, 会弹出这个提示:这个例子里我用https访问index.htm, index.htm里面有一个iframe,iframe的页面地址是http的index2.htm, 所以会出现这个提示
- 如果显示未加密的内容, 则页面看起来正常, 如果点"No"不现实未加密的内容, 则页面看起来像这个样子
- ← Previous
Ubuntu 7.10 从0开始 - 显卡驱动 - Next →
Html里的标签<button>