网站从http升级到https全教程
时间:2018-07-31 10:16:38
小编:动力软件园
阅读:
简单概述:应用从http升级到https只需要四步走:
申请证书---下载证书--安装证书---重启应用
一、准备工作:
1、HTTP和HTTPS的区别,有什么不同。
没有深入研究HTTPS协议的原理,只是简单理解协议和实现方式。HTTP是一种未加密的传输协议,HTTP协议传输存在隐私不安全的情况,HTTPS是一种基于SSL协议的网站加密传输协议,HTTPS是HTTP的安全升级版。客户端浏览器到网站服务器之间的SSL加密通道(SSL协议),实现高强度双向加密传输,防止传输数据被泄露或篡改。
2、如何实现https功能:
由于HTTPS实现是SSL+HTTP协议组成的,所以使用需要使用CA证书,目前免费的证书很少,下文讲介绍如何申请到免费的证书。
二、选择证书:
科普一下证书的类型。SSL数字证书,当前主要分为DV SSL、OV SSL、EV SSL三种类型的证书,区别如下图小锁 标志 和公司名称,鼠标放上去会显示相关信息。。
这个是动力软件园本站的效果图,免费的DV证书,OV SLL 和 EV SSL 都是收费的,每年好几千和我一样的个人站长可以选择DV SLL。
申请证书:
目前小编扒拉了一下各大云服务器,一般都有免费的证书使用,不得不说阿里是最会做生意的企业了。腾讯没有免费的SSL证书,百度云提供免费的DV证书,但是不能下载证书到本地站点,只能在百度云上使用,可惜了可惜,想用你百度的,却不给机会。然后是华为云,免费证书一年。。
关于收费证书的价格定价:影响数字证书价格的因素主要包括根证书的品牌、证书种类、域名数量、是否是通配域名和购买年限。既然和品牌相关,那我们就选择大品牌提供的免费DV SSL证书吧。
点击立即购买:
补全信息,建议选择文件验证方式方式,这样最快,阿里云云盾证书服务提供了两种验证方式:
DNS验证方式
如果您的站点服务器是Windows服务器或者使用了阿里云OSS服务,将无法创建隐藏目录,请不要选择文件验证方式,建议您通过DNS方式进行域名授权验证。
文件验证方式 请用浏览器访问地址是否正常输出内容。
目录从站点的根目录算起,在站点的根目录下创建.well-known/pki-validation子目录。注意第一层目录是带点的隐藏目录, Windows下命令为:md ".well-known"。 linux下为 mkdir .well-known;mkdir pki-validation
HTTPS地址https://xxx.com/.well-known/pki-validation/fileauth.txt HTTP地址http://xxx.com/.well-known/pki-validation/fileauth.txt
注意开启443端口哦。
三、下载并安装SSL证书:
阿里云提供 Nginx/Tengine,Apache,Tomcat,IIS 6,IIS 7/8,其他各种中间件的http是ssl
文件说明:如何配置apache和ssl证书,由于篇幅原因将在另外一个页面介绍。先做好准备阶段。
1. 证书文件yousslname.pem,包含两段内容,请不要删除任何一段内容。
2. 如果是证书系统创建的CSR,还包含:证书私钥文件yousslname.key、证书公钥文件public.pem、证书链文件chain.pem。
( 1 ) 在Apache的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为yousslname.key;
( 2 ) 打开 apache 安装目录下 conf 目录中的 httpd.conf 文件,找到以下内容并去掉“#”:
#LoadModule ssl_module modules/mod_ssl.so (如果找不到请确认是否编译过 openssl 插件) #Include conf/extra/httpd-ssl.conf ( 3 ) 打开 apache 安装目录下 conf/extra/httpd-ssl.conf 文件 (也可能是conf.d/ssl.conf,与操作系统及安装方式有关), 在配置文件中查找以下配置语句: # 添加 SSL 协议支持协议,去掉不安全的协议 SSLProtocol all -SSLv2 -SSLv3 # 修改加密套件如下 SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM SSLHonorCipherOrder on # 证书公钥配置 SSLCertificateFile cert/public.pem # 证书私钥配置 SSLCertificateKeyFile cert/yousslname.key # 证书链配置,如果该属性开头有 '#'字符,请删除掉 SSLCertificateChainFile cert/chain.pem
( 4 ) 重启 Apache。