Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >SSL TLS HTTP HTTPS SSH 分别是什么意思?

SSL TLS HTTP HTTPS SSH 分别是什么意思?

原创
作者头像
Learn-anything.cn
发布于 2021-11-26 23:01:53
发布于 2021-11-26 23:01:53
8320
举报
文章被收录于专栏:learn-anything.cnlearn-anything.cn
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. 主体信息(域名、公司名、地址、国家等); 2. 有效期; 3. Public Key; 4. CA的签名;

Telenet + SSH = ssh

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


OpenSSH是什么?

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


1、ssh

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

代码语言:txt
AI代码解释
复制
# 远程关机命令
$ 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登录远程服务器,每一次都要输入密码,用密钥可免密登录。

代码语言:txt
AI代码解释
复制
# 系统环境 : 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与远程服务器相互传输文件,此通信过程也是加密的。

代码语言:txt
AI代码解释
复制
# 本地文件「test.txt」拷贝到服务器的「~/」目录下
$ scp ~/test.txt user@ip:~/

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

# 服务器文件夹「test」拷贝到本地「~/」目录下
$ scp -r user@ip:~/test ~/ 
4、ssh-copy-id
代码语言:txt
AI代码解释
复制
# MAC下安装ssh-copy-id
$ brew install ssh-copy-id

# 使用见「ssh免密登录」

问题与解决方案
1、WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
代码语言:txt
AI代码解释
复制
$ 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,保存退出!

参考文档

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
一文搞懂企业中软件开发必备技能:git
C语言中文社区git仓库:https://gitee.com/cyyzwsq/C-Coding.git
C语言中文社区
2025/07/02
1310
一文搞懂企业中软件开发必备技能:git
Git禁止大文件提交到仓库中
Git提交的时候,有的时候很容易将目录下的非源代码的文件(如二进制文件、模型等)提交到Git仓库里,给后续的使用造成麻烦。那么有没有一种方法来限制提交到Git的文件的大小呢,答案是Yes,下面我来大概介绍下吧。 原理是利用Git的钩子来在commit之前执行一个脚本,在这个脚本里对提交的文件大小进行检查。
王云峰
2019/12/25
1.9K0
Git共享钩子脚本:实现项目代码的跨仓库同步
Git是现代软件开发中不可或缺的工具之一,它的优势之一在于它可以使用钩子脚本来执行特定的操作以满足各种需求。这篇文章将介绍Git的钩子脚本,重点关注如何使用共享钩子脚本来同步项目代码到其他项目。
八点半的Bruce、D
2023/09/14
1.3K0
Git共享钩子脚本:实现项目代码的跨仓库同步
【Git】Git 完全指南:从入门到精通
Git 是现代软件开发中最重要的版本控制工具之一,它帮助开发者高效地管理项目,支持分布式协作和版本控制。无论是个人项目还是团队开发,Git 都能提供强大的功能来跟踪、管理代码变更,并保障项目的稳定性与可持续发展。本篇文章从基础命令讲起,逐步深入,帮助你全面了解并掌握 Git,最终达到精通。
LuckiBit
2024/12/11
5.5K0
【Git】Git 完全指南:从入门到精通
巧用 gitHooks 提交前校验代码
在每一个使用 git 进行版本管理的仓库,都有一个目录 .git/hooks,包含 commit 各个阶段 Hooks 的脚本。这些 Hooks 在 git 操作 commit、push、merge 等得时候,可以做前置或者后置的操作,例如 pre-commit 在 git commit 前可以做代码校验,校验代码的时候使用的ESLint,格式化使用的是 prettier。Git 支持的常用钩子见下表,更多请查看官网Hooks:
刘小夕
2021/12/09
4.9K0
巧用 gitHooks 提交前校验代码
Git 仓库瘦身与 LFS 大文件存储
熟悉 Git 的小伙伴应该都知道随着 Git 仓库维护的时间越来越久,追踪的文件越来越多,git 存储的 objects 数量会极其庞大,每次从远程仓库 git clone 的时候都会墨迹很久。如果我们不小心 git add 了一个体积很大的文件,且 git push 到了远程仓库,那么我们 git clone 的时候也会很慢。
Cloud-Cloudys
2023/10/21
1K0
Git 仓库瘦身与 LFS 大文件存储
关于使用 Node.js 来辅助进行 CI/CD 的一些想法
  由于使用到的 CI/CD 工具可能会更换,对应的学习成本也相应增加,但是 Node.js 其实可以帮助我们实现这些工具的大部分功能,包括操作文件、执行 cmd 等等。   所以我们如果把大部分的打包或集成操作使用 Node.js 去实现,那么无论工具如何更换,我们只需学习如何使用该工具执行 npm 即可,从而大大降低迁移与学习成本。   当然这只是我最近迁移时的一些解决方案与想法,如果有大佬指教一些其他的方式,那自然是更好啦哈哈哈~
老猫-Leo
2023/12/11
3630
husky+lint-staged助力团队编码规范
Git Hooks 就是在 Git 执行特定事件(如commit、push、receive等)时触发运行的脚本,类似于“钩子函数”,没有设置可执行的钩子将被忽略。
零式的天空
2022/03/28
2.8K0
CMD批处理——forfiles命令使用,自动删除过期备份文件
公司服务器用来备份数据的硬盘过段时间就会被备份文件占满,弄得我老是要登录到服务器去手工删除那些老的文件,有时忘记了就会导致硬盘空间不足而无法备份。 因为只要保留最近几天的备份,如果可以做一个批处理让系统自动删除老备份文件就好了,但是Windows的命令行和Linux的Shell比起来功能差了很多,到底行不行我自己也不清楚。 于是上网查了一下各位大虾发的帖子,再经过自己的摸索和尝试,发现只要花点功夫还是能实现这个功能的。 Windows Server 2003内置的命令行文件,适合于XP以上系统 示例:
landv
2018/05/24
4.7K0
学会这 11 条,你离 Git 大神就不远了!
支持使用 merge 的开发者,他们认为仓库的提交历史就是记录实际发生过什么,它是针对于历史的一个文档,本身其实是有价值的,我们不应该随意修改。我们改变历史的话,就相当于使用“谎言”来掩盖实际发生过的事情,而这些痕迹是应该被保留的。可能,这样并不是很好。
民工哥
2021/04/21
3770
GIT 常用快捷命令
git rm --cached /path/to/file,然后正常 add 和 commit 即可。
Alone88
2019/10/22
1.4K0
Git钩子工具lefthook
lefthook是由 Go 语言开发的适用于多种编程语言项目的快速且强大的 Git 钩子管理器,它可以在项目构建过程中执行一些任务,例如检查代码格式、检查依赖、测试、覆盖率检查、静态分析、持续集成等。官方介绍它的几个特点: 快速,它是用 Go 编写的,可以并行运行命令。 强大,它可以控制执行通过命令传递的执行和文件。 简单,它是一个无依赖的二进制文件,可以在任何环境中工作。
kongxx
2024/05/21
3360
三年 Git 使用心得 & 常见问题整理
「使用场景:」 当你接到一个修复紧急 bug 的任务时候,一般都是先创建一个新的 bug 分支来修复它,然后合并,最后删除。但是,如果当前你正在开发功能中,短时间还无法完成,无法直接提交到仓库,这时候可以先把当前工作区的内容 git stash 一下,然后去修复 bug,修复后,再 git stash pop,恢复之前的工作内容。
Nealyang
2020/06/19
3K0
三年 Git 使用心得 & 常见问题整理
在 .NET 项目中使用 husky 完成 pre-commit 操作
Husky 是一个用于 Git 仓库的工具,主要用于管理 Git 钩子(hooks)。它可以帮助开发者在特定的 Git 操作(如提交、推送等)之前或之后执行自定义的脚本或命令,从而提高代码质量和团队协作效率。
jgrass
2025/03/20
900
在 .NET 项目中使用 husky 完成 pre-commit 操作
技能篇:git的简易教程
在学校,或许凭借一个人的力量就能负责整个项目的开发到上线。但是在在公司,因为项目的复杂性和紧急性,一个项目的往往是由多个人实现,此时就有一个问题,代码提交和代码合并。git和svn,这篇文章来讲讲git的原理和使用
潜行前行
2021/08/20
6140
技能篇:git的简易教程
一篇搞懂Git 和 SVN 的区别【原理篇】
Git和SVN都是版本管理系统,但是他们 命令区别后面会简单进行一个对比,我们先从原理的角度分析
火狼1
2022/03/22
4K0
一篇搞懂Git 和 SVN 的区别【原理篇】
个人git笔记,持续学习并补充填写
创建本地仓库(最好先创建一个目录,在该目录下输入指令创建git仓库),创建完成后该目录下会存在一个.git文件
诺诺的包包
2023/10/15
2000
个人git笔记,持续学习并补充填写
Git分布式版本控制器
  我要出一篇 Git 总结!先讲一下大致步骤: 如果是第一次接触 git 请先克隆仓库: 1.在本地新建项目文件夹,例如在D盘根目录下D:\ md myapp cd myapp 2.从远程git上拷贝下git@开头的url后,命令行输入: git clone git@... 3.配置全局或此项目 用户名、邮箱地址: 全局配置: git config --global user.name "kaixin" git config --global user.email "21577...@qq.com" 此项目配置: git config user.name "kaixin" git config user.email "21577...@qq.com"
我不是费圆
2020/12/17
5580
Git忽略已经提交过一次文件Git忽略文件
也就是添加之后从来没有提交(commit)过的文件,可以使用.gitignore忽略该文件
iOSDevLog
2020/07/03
2.6K0
我是如何使用 Git 和腾讯云 Lighthouse 做图床,并使用 hook 实现 WebP 压缩与水印的?
通常,我们的网站会将图片和网站“骨架”分开进行存储和“解耦”,方便使用 CDN 加速时,图片和网站可以使用不同的方案;也方便网站迁移。
Mintimate
2024/11/16
2771
我是如何使用 Git 和腾讯云 Lighthouse 做图床,并使用 hook 实现 WebP 压缩与水印的?
相关推荐
一文搞懂企业中软件开发必备技能:git
更多 >
LV.0
这个人很懒,什么都没有留下~
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档