HTTPS 与 SSL 证书

为什么使用 HTTPS

HTTP协议传输数据都是明文传输,未经过加密的,而在因特网中进行消息的传送过程中,消息会经过多台计算机、路由器,最终到达目的主机,所以通过HTTP传输的信息很容易被截获窃取到明文消息。令一方面,用HTTP通信过程中服务器不会验证通信方的身份,所以有可能遭遇伪装。而HTTPS(HTTP over SSL)对消息进行了加密处理,用证书验证是否是可靠的通信方,可以有效的防止上述事件的发生。

Nginx 配置 HTTPS

在配置HTTPS之前,要向供应商申请 SSL 证书,以阿里云为例,通过 ICP 备案的网站可以申请免费的证书。申请完 SSL 证书,可以根据使用 web 服务器的类型下载相应的证书,如我下载的是 nginx 证书:最终下载下来是 xxx.pem 和 xxx.key 这两个文件。简单介绍一下这两个文件。

  • PEM(Privacy Enhanced Mail):SSL 数字证书(证书的结构和内容由X.509证书标准定义,一般由用户公共密钥和用户标识符组成,此外还包括版本号、证书序列号、CA 标识符、签名算法标识、签发者名称、证书有效期等信息),主要目的是用于传递服务端公钥,以文本的方式进行存储。它的文件结构以 -----BEGIN XXX-----,并以 -----END XXX----- 结尾,中间 Body 内容为 Base64 编码过的数据。常见的其他格式的编码,还有:.der.p12.crt等。
    下图是我个人博客域名下的证书,通过 Chrome 浏览器可以查看:
  • 可以 OpenSSL 命令可以查看证书内容:
 openssl x509 -in xxx.pem -text -noout

我们知道 HTTPS 采用的是混合加密机制,用公钥对共享密钥(共享密钥用于后续传输信息的加密,非对称加密与对称加密相比,处理速度比较慢)进行加密传输。 HTTPS 请求的 SSL 握手阶段,服务器会将这份 SSL 证书(由数字证书认证机构颁发的公钥证书)发送给客户端,那么如何对证书进行验证呢?多数浏览器开发商发布版本时,其实会事先在内部植入常用认证机关的公开密钥,这样就能进行认证了。

  • .key文件:private key私钥文件。公钥和私钥是一对,只有私钥才能对公钥加密的信息进行解密,所以要妥善保管,防止泄露。

配置证书和私钥路径

在 nginx.conf 配置文件中的 HTTPS server 块进行相应的配置:

ssl_certificate     #.pem证书路径
ssl_certificate_key  # 私钥路径

参考:

个人博客:https://www.kangpeiqin.cn/#/index
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值