关于HTTPS的安全配置

141 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第17天,点击查看活动详情

HTTP概括

目前全球互联网大厂正在HTTP往HTTPS迁移,chrome和火狐浏览器将对不采用HTTPS的加密网站提示不安全,苹果要求所有APP通信都必须采用HTTPS加密,小程序强制要求服务器端使用HTTPS请求

  • 特点
  1. 保密性(防泄密)
  2. 完整性(防篡改)
  3. 真实性(防假冒)
  • 危害
  1. 窃听 密码、敏感信息
  2. 篡改 插入广告、重定向到其他网站(js和Head头)

SSL证书

SSL证书由浏览器中受信任的根证书颁布机构在验证服务器身份后颁发,具有网站身份验证和加密传输双重功能

  • 密码学
  1. 对称加密 对称加密的一大缺点是密钥的管理与分配,换句话说,如何把密钥发送到需要解密你的消息的人的手里是一个问题,在发送密钥的过程中,密钥有很大的风险会被黑客们拦截,现实中通常的做法是将对称加密的密钥进行非对称加密,然后传送给需要它的人

2.不对称加密 产生一对密钥,公钥负责加密

  • SSH公钥登录原理
  1. 密码口令登录 通过密码进行登录,流程:
  1. 客户端连接上服务器后,服务起把自己的公钥传给客户端
  2. 客户端输入服务器密码通过公钥加密之后传给服务器
  3. 服务器根据自己的私钥解密登录密码,如果正确那么客户端可以登录
  1. 公钥登录 公钥登录时为了解决每次登录服务器都要输入密码的问题,流行使用RSA加密方案,主要流程包含:
  1. 客户端生成RSA公钥和私钥
  2. 客户端将自己的公钥存放在服务器
  3. 客户端请求连接服务器,服务器将一个用公钥加密的随机字符串发送给客户端
  4. 客户端根据自己得私钥加密这个随机字符串之后再发送给服务器
  5. 服务器接受到加密后的字符串之后用公钥解密,如果正确则让客户端登陆,否则拒绝
# ⽣成公钥
ssh-keygen -t rsa -P ''
xubin@xubindeMBP:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/xubin/.ssh/id_rsa):
/Users/xubin/.ssh/id_rsa already exists.
Overwrite (y/n)? yes
Enter passphrase (empty for no passphrase):

查看公钥

cat .ssh/id_rsa.pub

将公钥拷贝到服务器

scp ~/.ssh/id_rsa.pub root@47.98.252.XXX:/root

将公钥加入到信任列表

cat id_dsa.pub >> ~/.ssh/authorized_keys

参考资料

HTTPS和密码学