Https 协议

前言

HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司进行,提供了身份验证与加密通讯方法,现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。

HTTPS和HTTP的区别

一、https协议需要到ca申请证书,一般免费证书很少,需要交费。

二、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。

三、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

四、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

在IIS中安装SSL

一、在IIS中生成Certificate Signing Request (CSR)

个人理解:生成CSR就是生成“私钥/公钥对”之后从中提取出公钥。

1. 打开IIS Manager,在根节点中选择Server Certificates(服务器证书),点击右侧的Create Certificate Request...,然后填写相应的Distinguished Name Properties(见下图)。

Https 协议_第1张图片

Common name中填写域名(如果用于所有二级域名,填*.域名),Organization中公司名称,Organizational unit填写部门名称。

2. 在Cryptographic service provider中选择Microsoft RSA SChannel Cryptographic Provider,在Bit length中选择2048。

3. 选择生成文件的保存路径,完成之后,在生成的txt文件中就会看到以“-----BEGIN NEW CERTIFICATE REQUEST-----”开头的CSR内容。这就是接下来在CA机构中生成CA证书时要用到的CSR。

二、从CA机构购买并创建CA证书

这里以GoDaddy为例。

1. 打开godaddy.com网站,通过菜单进入Products -> SSL&Security -> SSL Certificates,选择Protect All Subdomains("Wildcard"), 在Pick your plan type中,选择Standard(Validates domain ownership),然后完成购买。

2. 进入My Account -> SSL CERTIFICATES,创建证书(Certificate),创建时将之前得到的CSR内容复制到“CSR文本框”中。

3. 接入来进入GoDaddy的审批流程,在审批过程中需要验证域名的所有者(dns填加记录或上传html文件至网站目录),验证成功后很快就会生成CA证书。

4. 下载CA证书文件至生成CSR的服务器上。

三、在IIS中安装CA证书

1. 回到第一步中生成CSR的服务器上,进入IIS的Server Certificates(服务器证书),点击Compelete Certificate Request,进入Specify Certificate Authority Response窗口填写相应内容(见下图)。

Https 协议_第2张图片

File name填写第二步中从CA机构下载的证书文件路径(.crt),Friendly name填写第一步中创建CSR时填写的Common name(*.域名),Certificate store选择Web Hosting,然后点击OK。

2. 如果用的是IIS 8.0,在创建过程中出现“Failed to remove the certificate”的提示,不用理会。

3. 创建成功之后,会在Server Certificates中看到这个证书。

四、在IIS站点中配置https

1. 在生成CSR的同一台服务器上配置https

1.1 选择相应的站点,右键选择Edit Bindings,点击Add。

1.2 在Type中选择https,在SSL certificate的下拉菜单中会看到之前安装的CA证书(见下图)。

Https 协议_第3张图片

1.3 选择CA证书之后就完成了https的配置。

2. 在另外的服务器上配置https

2.1 先进入之前已经安装CA证书的服务器,在Server Certificates中导出证书,并将证书文件(.pfx)复制到需要配置https的服务器。

2.2 进入需要配置https的服务器,在Server Certificates中导入证书,导入成功之后,按照之前的1.1-1.3的步骤配置https。

五、其他相关配置

1. 在配置https的服务器的Windows防火墙上允许443的端口的访问。

2. 如果需要将所有http的请求重定向至https,可在IIS的URL Rewrite Module中添加如下的规则:

Https 协议_第4张图片

Https 协议_第5张图片

web.config中对应的配置:

<rewrite>
        <rule name="Redirect to HTTPS" stopProcessing="true">
            <match url="(.*)" />
            <conditions>
                <add input="{HTTPS}" pattern="^OFF$" />
            </conditions>
            <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther" />
        </rule>
    </rules>
</rewrite>

参考:百度百科

http://www.cnblogs.com/dudu/p/3457246.html

你可能感兴趣的:(https)