关于ssl:SSL-TLS-HTTP-HTTPS-SSH-分别是什么意思

63次阅读

共计 2867 个字符,预计需要花费 8 分钟才能阅读完成。

HTTP + SSL/TLS = HTTPS
  • SSL(Secure Sockets Layer,安全套接字协定)
  • TLS(Transport Layer Security,传输层平安协定)
  • HTTP(HyperText Transfer Protocol,超文本传输协定),让计算机之间能够进行明文数据交换,默认端口 80.
  • HTTPS(HyperText Transfer Protocol Secure,超文本传输平安协定),用 SSL/TLS 对数据加密,再通过 HTTP 传输,保证数据的安全性,默认端口 443.

SSL 与 TLS 区别

SSL 与 TLS 都是用于互联网传输的加密协议。

  • SSL 是有 Netscape 开发加密协议;

    • SSL 1.0 版本没有公开公布;
    • SSL 2.0 版本于 1995 年公布,简写成 SSLv2, 于 2011 年被 IETF 废除;
    • SSL 3.0 版本于 1996 年公布, 简写成 SSLv3, 于 2015 年被 IETF 废除;
  • TLS 是基于 SSL 3.0 的一个新版本,原则上他的名字是 SSL 4.0;只是 IETF 在把 SSL 标准化时把 SSL 名称改成了 TLS。

CA 及数字证书

证书颁发机构(CA, Certificate Authority)即颁发数字证书的机构,HTTP 服务降级为 HTTPS 时,就须要数字证书来保障其通信链路的平安,Let’s Encrypt 是收费提供此证书的公益机构。

  • 申领证书流程:

    1. 服务器学生成一对密钥(私钥 + 公钥);
    2. 公钥 + 服务器信息(域名、ip 等),发送给 CA 机构;
    3. CA 机构会依据收到的信息,核实身份并加密生成证书,此证书也只有 CA 机构的私钥能力解密,这样也就保障了域名与服务器 ip 的一一对应关系,保障通信链路的安全性。
  • 应用证书

    1. 客户拜访域名:「https://www.example.com」
      从 CA 机构获取域名对应证书,客户浏览器依据证书中公钥给须要传输的数据进行加密。
    2. 服务器取得数据后,用本人的私钥来解密数据,如果公钥与私钥数据不匹配,就算第三方取得数据,也无奈解密。
  • 数字证书组成部分有:

    1. 主体信息(域名、公司名、地址、国家等);

      1. 有效期;
      2. Public Key;
      3. CA 的签名;

Telenet + SSH = ssh

SSH(Security Shell) 是专为近程登录和其余网络服务 (Telnet、ftp 等) 提供安全性的协定。OpenSSH 基于 SSH 协定实现了很多利用:ssh、scp、sftp 等,ssh 默认端口 22。


OpenSSH 是什么?

OpenSSH 是实现了 SSH 协定的软件包,OpenSSH 官方网站,蕴含以下工具:

  • Remote operations are done using ssh, scp, and sftp.
  • Key management with ssh-add, ssh-keysign, ssh-keyscan, and ssh-keygen.
  • The service side consists of sshd, sftp-server, and ssh-agent.

1、ssh

ssh 是 OpenSSH 实现近程登录的客户端软件,让近程服务器执行命令操作。

# 近程关机命令
$ ssh -t user@ip 'sudo shutdown -h now'

# 近程敞开多台服务器:$ ssh -t user@ip1 'sudo shutdown -h now';ssh -t user@ip2 'sudo shutdown -h now';

# 近程重启命令
$ ssh -t user@ip1 'sudo reboot'

# 重启 SSH
$ /etc/init.d/ssh restart
$ sudo service ssh restart

# SSH 配置目录
/etc/ssh

# 公钥的目录
~/.ssh

# 能够输入登录时 log 信息
ssh -v [root@node1](mailto:user@ip)

# 查看 SSH 的过程状况
$ ps aux | grep ssh 
2、ssh 免密登录

$ ssh user@ip 登录近程服务器,每一次都要输出明码,用密钥可免密登录。

# 零碎环境 : MAC
# 创立 SSH 秘钥(ssh-keygen 是生成和治理密钥工具)
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

# 把密钥退出到近程机器上(ssh-copy-id 是装置密钥到近程服务器的工具)$ ssh-copy-id -i ~/.ssh/id_rsa.pub user@ip

# 间接登录,无需再输出明码
$ ssh user@ip
3、scp

scp 应用 ssh 与近程服务器互相传输文件,此通信过程也是加密的。

# 本地文件「test.txt」拷贝到服务器的「~/」目录下
$ scp ~/test.txt user@ip:~/

# 本地文件夹「test」拷贝到服务器「~/」目录下
$ scp -r ~/test user@ip:~/

# 服务器文件夹「test」拷贝到本地「~/」目录下
$ scp -r user@ip:~/test ~/ 
4、ssh-copy-id
# MAC 下装置 ssh-copy-id
$ brew install ssh-copy-id

# 应用见「ssh 免密登录」

问题与解决方案
1、WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
$ ssh pi@192.168.1.9

# 呈现上面谬误:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:VrUX6WSrWP7GYk+9rjNfUitciAFE1DJPPR8lilyXq4Q.
Please contact your system administrator.
Add correct host key in /Users/liuhai/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/liuhai/.ssh/known_hosts:5
ECDSA host key for 192.168.1.9 has changed and you have requested strict checking.
Host key verification failed.

# Mac 下解决方案:第一步:$ sudo nano ~/.ssh/known_hosts
第二步:删除 ip 对应哪一行数据(fn+delete)
第三步:ctrl+x,保留退出!

参考文档
  • SSL TLS HTTP HTTPS SSH 别离是什么意思?

正文完
 0