我们都知道SSL加密通道, 走https通讯协议时, 会需要申请一个 SSL的凭证.网站在数据保护上会更安全。

网站设置成HTTPS这种加密SSL的访问方式,很早之前就看了很多教程,但是一直以来都认为需要在GoDaddy之类的域名网站购买一个SSL,花个大把大把的钱,通过Verysign的认证什么的。直到今天发现了StartSSL

StartSSL和VeriSign一样都是CA(SSL证书的发证机构)很多浏览器包括Chrome等都已经直到他们颁发的证书,也就是说你通过他们生成一个证书将不再受到浏览器提示说该证书不可信了。

废话不多说,下面来具体操作步骤:

Startcom提供的在线申请SSL凭证, 十分方便而且实用.网站: http://www.startssl.com/

下面是申请教程,网上教程很乱,今天亲测整理IIS上全部攻略。

=========下面是注册账号教程================

打开http://www.startssl.com/由上角有个钥匙符合标志,点击进入申请登录账户。

之后出现三个功能, Authenticaion, Sign-up, express line,选择 Sign-up。

填入基本资料后, 就可以利用 email 完成验证身份的动作了.
这里要注意的是:地址最好详细到门牌号,否则不能通过验证。
信箱也一定要写正确,否则一会收不到验证码。

这个时候网页不要关闭,去信箱查看发给你的验证码。

填入验证码。

最近发现,填完验证码后出现:
Additional Verification Required
Your request for an account at StartSSL is being held up for a review by our personnel.
Please be patient as we review your request and wait for our response within the next six hours. Thank you for your understanding!
If you feel that this is a mistake from our side, please contact the CertMaster and report this incident.
需要人工审核下。那就等下吧。
上次因为没有写具体门牌号,被人工拒绝过,要求回信给他们进行验证。写清楚详细地址。

验证通过后,会回信到你的信箱里,里面有个链接地址,把链接地址复制到浏览器,最好是IE浏览器哦。
别的浏览器有时候下载不下来证书。
如果粘贴地址无效,要求输入验证码,看信箱里有个验证码。复制进去即可。

接下来要求保存一个key证书,这个是以后登录该网站的凭证。
以后登录不需要输入账户密码,全凭该证书,所以要保存并备份哦,否则就麻烦啦。

继续点击

出现这个,OK.

自此,账号申请完毕。

=========下面开始验证域名=============

这时候。class1后面有个绿色的对号,说明我们能申请免费的SSL。

接下來在 control panel 上的 Validations Wizard进行web ssl申请,畫面如下:

continue 后,就可以输入网域名称了。
以gongzhe.org域名为例, 就是将尾域名设定为.org 前面输入gongzhe即可, 如下:

再来他会进行域名名称的whois查核, 并让你选择可验证的email, 选定可以验证为该域名拥有人的email验证后, 系统会发出认证码供确认, 并完成此项步骤.
(这里要注意的是,如果是不常用的后缀或无法查询域名WHOIS信息的时候,必须使用该域名的企业邮局信箱验证,可以建立postmaster或hostmaster或webmaster账户来建立企业邮局信箱才可以验证)

我这里查询到了域名whois信息里的信箱,所以直接发了封信到我注册域名的信箱里。

不要关闭当前注册页面,到域名注册信箱里查看验证码。


输入验证。成功了。

OK,当前域名就添加了进来。

===========下面开始申请证书===============
接下来就是SSL证书凭证申请了, 选择 Certificates Wizard 中的 Web Server SSL/TLS Certificate 如下:

下一步是进 private key生成, 若自行由 web server 工具进行 CSR 汇出时, 可以skip跳过此步骤, 并由下一步将该 CSR 汇入即可, 若是要直接由线上产生, 就自行输入大于10码的密码, 并选好加密强度后进行下一步:(这个密码在生成证书的时候需要,很重要要记住哦。)

生成的private key文件, 要用TXT记事本存下来哦, 画面说明建议存为 ssl.key.  (这个私人密钥一定要保存下来哦,一会会用得到。存在电脑里)

再来下一步选择主域名:

填写要申请的二级域名,然后继续。这里因为是免费的,所以二级网站要一个一个申请,如果想*.xxx.org都能用,要申请套餐CLASS2才行。输入主机www后,默认的xxx.org也https使用协议。

提示成功,继续。

接下来生成了个公钥,这个也是网站证书。
这里要说明的是,他提示你可以保存为ssl.crt.就变成一个证书了,请以txt格式也保存一份,方便以后使用,还要说明的是,一会服务器上导入证书的时候,不是只导入该证书,只导入该证书网站网页会无法访问的。

然后提示你要升级到CLASS2,不用管她。

===========制作服务器IIS上需要的证书==========

下面制作要导入服务器IIS上的证书。
点击控制面板的左上角的TOOL BOX,然后点击Create PKCS#12 (PFX) File,在Enter Private Key里填写最开始生成的个人密钥,在Enter Certificate:里填写后来生成的公钥!在Provide a password:  里填入您生成密钥的密码!点击Continue后开始生成证书,然后提示您下载。

这里要填写的就是刚才保存的2个文件,一个个私人密钥(提示可以保存为ssl.key的那个),一个是公钥(提示保存ssl.crt变成证书的那个代码),然后输入最早提示生成的密码。

提示下载文件,下载即可。后缀为.p12.保存下来,这个才是导入服务器IIS的完整证书。

=========下面开始在服务器上设置IIS,开启SSL服务=============

申请通过并生成了.p12证书文件后,就可以在Windows Server 2003中导入了。
将刚才生成的P12证书FTP传到服务器上。

首先,打开mmc控制台(在“运行”对话框中输入“mmc”,并按确定),并添加管理单元。

单击“添加”按钮,添加证书管理单元。

在弹出的界面中选择“计算机账户”,单击“下一步”,选择“本地计算机”,单击“完成”。回到“添加/删除管理单元”的界面中,按“确定”。

这样就添加了证书的管理单元,在“个人”目录执行导入操作。


如果有密码,输入刚才生成时候的密码。

成功后服务器上会有3个证书.
(这里要注意的是,一定要用控制台导入,有人老出错,请教STARTSSL官方人员,说事因为直接导入会出错)

这里还要注意的是:一定要把 StartCom CLASS 1的证书复制一份到 中级证书颁发机构/证书 里面。
否则StartClass 会给你发送一份 StartClass CLASS 1 未正确安装的信。
而且我们如果用 wosign SSL健康体检报告 验证的话,也会出现健康问题。

打开IIS,并找到要添加证书的网站,打开其“属性”面板,并选择“目录安全性”标签,单击“服务器证书”。

选择“分配现有证书”。这里要解释一下为什么不直接“从 .pfx 文件导入证书”而要用MMC,原因是我这样导入的时候经常提示密码错误,后来发Email到StartSSL,他们建议我用MMC导入,于是就出现这里之前的一堆步骤。

单击“下一步”后选择证书,之后的都按默认设置就行,一直单击“下一步”,直到“完成”。

回到“目录安全性”界面,单击“服务器证书”下面的“编辑”,如果要求访客必须用https连接,就把最上面的两项勾上。

一直按“确定”直到“目录安全性”界面关闭。至此,https配置完成了。

=========关于http转https=========

很多时候,当我们强制要求访客使用https的时候,会出现
“该页必须通过安全通道查看
您试图访问的页面使用安全套接字层 (SSL) 进行保护。”
的错误提示。

这是一个403.4的error page,我们只需要在403.4的error page中插入http转https协定即可。

1.首先于”C:\WINDOWS\Help\iisHelp\common\”中编辑403-4.htm页面
2.在内 插入下列的scirpt。
3.将档桉存档后,以http进入至指定的页面,即可直接转置进到https。


<script type=“text/javascript”>
var url=window.location.href;
url=url.replace(“http:”,“https:”)
window.location.replace(url)