对于api服务器,我们不能让访问者先登录再进行访问这样不安全,也不友好。 http协议没有任何的加密以及身份验证的机制,即时是token认证,也非常容易遭遇窃听、劫持、篡改,因此会造成个人隐私泄露,恶意的流量劫持等严重的安全问题。
1.1 https如何保证安全HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。它是一个URI scheme(抽象标识符体系),句法类同http:体系,用于安全的HTTP数据传输。https:URL表明它使用了HTTPS,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。
1.2 身份认证(CA数字证书)https协议中身份认证的部分是由数字证书来完成的,证书由公钥、证书主体、数字签名等内容组成,在客户端发起SSL请求后,服务端会将数字证书发给客户端,客户端会对证书进行验证,并获取用于秘钥交换的非对称密钥。 数字证书有两个作用:
1)身份授权。确保浏览器访问的网站是经过CA验证的可信任的网站。 2)分发公钥。每个数字证书都包含了注册者生成的公钥。在SSL握手时会通过certificate消息传输给客户端。
申请一个受信任的数字证书通常有如下流程:
1)终端实体(可以是一个终端硬件或者网站)生成公私钥和证书请求。 2)RA(证书注册及审核机构)检查实体的合法性。如果个人或者小网站,这一步不是必须的。 3)CA(证书签发机构)签发证书,发送给申请者。 4)证书更新到repository(负责数字证书及CRL内容存储和分发),终端后续从repository更新证书,查询证书状态等。
注册备案过的域名,可以供我们使用,申请SSL证书,需要SSL证书进行认证。SSL证书有很多途径都可以申请,比如国内的阿里云,腾讯云等都是比较方便的,而且还有免费的证书可以申请,都是一年的使用时间。