2025年跟上AI新时代:带AI人工智能的蜜罐系统T-Pot
T-Pot是一个集成式、可选分布式的、支持多架构(amd64、arm64)的蜜罐平台,它支持20多种蜜罐,并提供了使用Elastic Stack的无数可视化选项、动态实时攻击地图以及众多安全工具,以进一步提升蜜罐系统体验。源码地址:GitHub - telekom-security/tpotce: 🍯 T-Pot - The All In One Multi Honeypot Platform 🐝
随着人工智能技术的普及,从T-Pot 24.04.1版本开始,引入了两个基于LLM的蜜罐:Beelzebub和Galah。这些蜜罐需要安装Ollama,并需在T-Pot配置文件中进行相应配置。
在deepseek横空出世后,Ollama终于可以在大多数普通机器上较快的使用大模型了。基于此,再次实践蜜罐系统T-Pot 。以前的实践见:T-Pot多功能蜜罐实践@debian12@FreeBSD-CSDN博客
安装带AI人工智能的蜜罐系统T-Pot
这次是在Ubuntu24.04虚拟机中进行操作。
T-Pot的安装非常简单方便
下载源码:
git clone https://github.com/telekom-security/tpotce
然后进入tpotce目录,执行./install.sh安装即可。
安装完成,重启系统,T-Pot就算安装好了。
下载源代码
git clone https://github.com/telekom-security/tpotce
$ cd tpotce- Run the installer as non-root:
$ ./install.sh
安装之前,先手工安装docker并设置镜像
如果能科学上网,这步可以省略,直接install.sh一键安装即可
sudo apt install docker.io
设置docker镜像
如果能科学上网,就不用设置镜像这么繁琐,docker也不用手工安装,直接install.sh一键安装即可。
在/etc/docker/daemon.json文件中写入:
{"registry-mirrors": ["https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc"]
}
启动docker服务
service docker start
如果前面已经启动服务了,这里就重启服务
service docker restart
安装其它依赖库
为了防止安装失败,需要安装这个库
sudo apt-get install util-linux
安装T-Pot
进入源代码目录cd tpotce
执行安装命令 ./install.sh
注意这里并不需要sudo,但是安装过程中,会提示输入sudo口令。
稍后会出现安装选择界面,让选择哪种模式:标准模式,Hive模式,llm AI大模型模式等
选了l,也就是llm大模型模式
设了web账号sky,密码123
后面就是漫长的安装过程:
✔ nginx Pulled 323.8s✔ logstash Pulled 526.1s ✔ beelzebub Pulled 432.2s⠴ suricata [⣿⣿⣷] 37.81MB / 41.96MB Pulling 718.7s✔ map_redis Pulled 29.5s✔ p0f Pulled 489.2s ✔ tpotinit Pulled 559.0s✔ ewsposter Pulled 370.4s ⠼ kibana [⣿⣿⣿⣿⣿⣿] 359.6MB / 360.2MB Pulling 718.6s⠴ elasticsearch [⣿⣿] 644.8MB / 644.9MB Pulling 718.7s✔ nginx Pulled 323.8s✔ beelzebub Pulled 432.2s✔ map_web Pulled 637.8s⠴ spiderfoot [⣿⣿] 141.9MB / 142.1MB Pulling 718.7s✔ tpotinit Pulled 559.0s⠴ kibana [⣿⣿⣿⣿⣿⣿] 359.6MB / 360.2MB Pulling
看到里面安装了elasticsearch,这个明显是向量检索用的。
安装完成:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 0.0.0.0:64295 0.0.0.0:* LISTEN 0 83700 17424/sshd: /usr/sb
tcp6 0 0 :::64295 :::* LISTEN 0 83702 17424/sshd: /usr/sb
udp 0 0 192.168.56.101:68 0.0.0.0:* 998 87661 9049/systemd-networ
udp 0 0 10.0.2.15:68 0.0.0.0:* 998 47527 9049/systemd-networ### Done. Please reboot and re-connect via SSH on tcp/64295.
Make sure to adjust the T-Pot config file (.env) for Ollama / ChatGPT settings.
注意这句:Please reboot and re-connect via SSH on tcp/64295.
也就是需要重启,并登录到64295端口。为什么不登陆80端口呢?因为安装好T-Pot后,80端口就是个蜜罐系统啦!
登录和管理
好的,安装完成,让我们ssh来登录64295这个端口吧!
使用命令:ssh username@192.168.56.101 -p 64295
登到服务器上,也没啥,刚开始用也不太懂,这时候感觉登上来也没啥事干。
这时候,也可以直接用浏览器登录,web登录端口是64297,比如浏览器打开:
https://192.168.56.101:64297/
就可以看到web监控页面了。这个web页面,主要是监控显示页面。
WEB监控界面的几款工具介绍
web监控界面有如下几个链接:Attack Map Cyberchef Elasticvue Kibana Spiderfoot,可以感觉需要选择合适的监控和分析视图。
1. Attack Map
Attack Map通常指的是一种网络安全可视化工具,它能够以地图的形式实时展示网络攻击的来源和目标
2. Cyberchef
Cyberchef是一个开源的、基于Web的工具,用于进行各种数据转换、编码、加密和解密操作。它提供了一个直观的界面,用户可以通过拖拽和连接不同的操作模块来处理数据。它可以帮助安全分析师快速解码和分析恶意软件样本、网络流量数据等。
3. Elasticvue
Elasticvue是一个专为Elasticsearch设计的可视化工具。它提供了丰富的图表和仪表盘功能,使用户能够直观地分析和展示Elasticsearch中的数据。与Kibana类似,Elasticvue也支持多种可视化类型,如图表、表格和地图等。然而,Elasticvue可能不如Kibana那样广泛被使用或知名,但它仍然是一个强大的Elasticsearch可视化选项。
4. Kibana
Kibana是Elasticsearch的官方可视化工具,它提供了强大的数据可视化和分析功能。用户可以利用Kibana的图表功能展示实时数据,从而迅速发现问题并采取措施。Kibana的仪表盘功能允许用户组合多个图表,创建一个全景视图,从多个角度对数据进行分析。此外,Kibana还支持多种数据源的集成,不仅限于Elasticsearch,用户可以通过插件和API将其他数据源的数据引入Kibana进行统一分析。
5. SpiderFoot
SpiderFoot是一个开源的情报收集自动化工具,它能够帮助安全研究人员和测试人员自动收集目标系统的信息。SpiderFoot通过发送各种查询和探测到目标系统,然后收集和分析返回的响应,以提取有用的信息。这些信息可能包括IP地址、域名、电子邮件地址、社交媒体账号等。。
既然deepseek那么火,我们就选一款支持AI的工具尝试一下。
AI赋能Beelzehub
两款支持AI的蜜罐工具,一款beelzebub star 836, 一款Galah star 491,我们选多的,也就是beelzebub,官网:GitHub - mariocandela/beelzebub: A secure low code honeypot framework, leveraging AI for System Virtualization.
https://github.com/mariocandela/beelzebub
但是不知道下一步该干什么。
总结
以上就是我们装好T-Pot后的第一观感。手册专门提供了First Start,让我们跟着手册开始吧!
First Start 开始第一步
一旦安装好T-Pot,系统就需要重启一下,这个我们前面已经重启过了。
可以使用系统账户通过ssh登录系统,命令为:
ssh -l <OS_USERNAME> -p 64295 <your.ip>
不过我一般习惯用命令:ssh username@ip -p 64295
还可以通过浏览器来登录T-Pot WebUI 即Web界面,地址为:
https://<your.ip>:64297
注意,这里的登录用户名和密码是安装T-Pot最后部分时我们设定的,一般不与系统账户一样。
这两步我们前面也做了。
Standalone First Start 第一次独立启动
启动后没有啥可以做的,可以用dps看看蜜罐们是否启动了,命令:
dps
输出:
dps
NAMES STATUS PORTS
beelzebub Up About an hour 0.0.0.0:22->22/tcp, :::22->22/tcp
elasticsearch Up About an hour (healthy) 127.0.0.1:64298->9200/tcp
fatt Up About an hour
galah Up About an hour 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp, 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:8443->8443/tcp, :::8443->8443/tcp
kibana Up About an hour (healthy) 127.0.0.1:64296->5601/tcp
logstash Up About an hour (healthy) 127.0.0.1:64305->64305/tcp
map_data Up About an hour
map_redis Up About an hour
map_web Up About an hour 127.0.0.1:64299->64299/tcp
nginx Up About an hour 0.0.0.0:64294->64294/tcp, :::64294->64294/tcp, 0.0.0.0:64297->64297/tcp, :::64297->64297/tcp
p0f Up About an hour
spiderfoot Up About an hour (healthy) 127.0.0.1:64303->8080/tcp
suricata Up About an hour
tpotinit Up About an hour (healthy)
可以看到beelzehub这个蜜罐启动了。
如果没啥事可以做,可以去 Kibana 或者 Geoip Attack Map 看看监控。
好吧,手册写的也这么简单,看来真的是没事做。
测试登录beelzehub蜜罐
官网:GitHub - mariocandela/beelzebub: A secure low code honeypot framework, leveraging AI for System Virtualization.
通过上面的服务列表,可以知道22端口是beelzebub的蜜罐,80端口是galah的蜜罐
登录22端口看看:
ssh root@192.168.56.101
root@192.168.56.101's password:
root@ubuntu:~$ ls
command not found
root@ubuntu:~$ pwd
command not found
看看,啥也没有啊,连ls和pwd也没有,果然是个蜜罐。
当然另一个原因是这个蜜罐没配置好ollama AI部分。
尝试配置ollama
这个以后再专门花时间去弄吧,就先到这里。
好了,到这里,T-Pot的实践之旅就结束啦!
调试
install.sh安装失败,怀疑docker有问题
Error in the pull function. [IP: 3.170.229.96 443]", "Err:10 https://download.docker.com/linux/ubuntu noble/stable amd64 docker-compose-plugin amd64 2.32.4-1~ubuntu.24.04~noble", " Could not handshake: Error in the pull function. [IP: 3.170.229.96 443]", "Fetched 205 kB in 27s (7519 B/s)"]}
手工安装docker
sudo apt install docker-compose
加上docker加速镜像,
在/etc/docker/daemon.json文件中写入:
{"registry-mirrors": ["https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc"]
}
再启动./install.sh
还是失败。
docker这块怎么办?
仔细查看这篇文档,发现docker并没有安装和启动,
一步步来,再次安装和启动docker服务:
安装docker
sudo apt install docker.io
安装完成后/etc/docker/daemon.json文件中写入镜像。
重启服务:
systemctl daemon-reload
systemctl restart docker
如果这两条命令不能执行,就用service命令:
service docker start
重启服务:
service docker restart
配置完成后,可以用以下命令查看是否生效:
sudo docker info | grep -A1 "Registry Mirrors"
显示下面内容,证明镜像生效:
sudo docker info | grep -A1 "Registry Mirrors"Registry Mirrors:https://docker.registry.cyou/
docker安装后启动失败
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Wed 2025-02-19 23:41:02 UTC; 19ms ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Process: 6097 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILURE)
Main PID: 6097 (code=exited, status=1/FAILURE)
CPU: 309ms
手工启动,启动成功:
service docker start
安装失败报错Something went wrong
TASK [Gathering Facts] *****************************************************************************************************
ok: [127.0.0.1]TASK [Syncing clocks (All)] ************************************************************************************************
fatal: [127.0.0.1]: FAILED! => {"changed": true, "cmd": "hwclock --hctosys", "delta": "0:00:00.010539", "end": "2025-02-19 23:44:53.832705", "msg": "non-zero return code", "rc": 127, "start": "2025-02-19 23:44:53.822166", "stderr": "/bin/sh: 1: hwclock: not found", "stderr_lines": ["/bin/sh: 1: hwclock: not found"], "stdout": "", "stdout_lines": []}
...ignoringTASK [Install recommended packages (Debian, Raspbian, Ubuntu)] *************************************************************
fatal: [127.0.0.1]: FAILED! => {"changed": false, "msg": "Failed to update apt cache: unknown reason"}PLAY RECAP *****************************************************************************************************************
127.0.0.1 : ok=8 changed=3 unreachable=0 failed=1 skipped=1 rescued=0 ignored=1### Something went wrong with the Playbook, please review the output and / or install_tpot.log for clues.
### Aborting.
安装这个试试
sudo apt-get install util-linux
解决一部分报错,有新的报错
报错TASK [Enable Docker Engine upon boot (All)]
TASK [Enable Docker Engine upon boot (All)] ********************************************************************************
fatal: [127.0.0.1]: FAILED! => {"changed": false, "msg": "Unable to start service docker: Job for docker.service failed because the control process exited with error code.\nSee \"systemctl status docker.service\" and \"journalctl -xeu docker.service\" for details.\n"}
PLAY RECAP *****************************************************************************************************************
127.0.0.1 : ok=29 changed=14 unreachable=0 failed=1 skipped=1 rescued=0 ignored=1
### Something went wrong with the Playbook, please review the output and / or install_tpot.log for clues.
### Aborting.
重新把docker服务安装,设置镜像,重启,好像整完问题就解决了。
相关文章:
2025年跟上AI新时代:带AI人工智能的蜜罐系统T-Pot
T-Pot是一个集成式、可选分布式的、支持多架构(amd64、arm64)的蜜罐平台,它支持20多种蜜罐,并提供了使用Elastic Stack的无数可视化选项、动态实时攻击地图以及众多安全工具,以进一步提升蜜罐系统体验。源码地址&#…...
【新手入门】SQL注入之盲注
一、引言 在我们的注入语句被带入数据库查询但却什么都没有返回的情况我们该怎么办? 例如应用程序返回到一个"通用的"的页面,或者重定向一个通用页面(可能为网站首页)。这时,我们之前学习的SQL注入的办法就无法使用了。这种情况我们称之为无…...
python-leetcode-分割等和子集
416. 分割等和子集 - 力扣(LeetCode) class Solution:def canPartition(self, nums: List[int]) -> bool:total sum(nums)if total % 2 ! 0:return Falsetarget total // 2dp [False] * (target 1)dp[0] Truefor num in nums:for j in range(tar…...
【大模型+知识图谱】大模型与知识图谱融合:技术演进、实践应用与未来挑战
【大模型+知识图谱】大模型与知识图谱融合:技术演进、实践应用与未来挑战 大模型与知识图谱融合:技术演进、实践应用与未来挑战引言:为什么需要融合?一、技术融合的三重路径1.1 知识图谱增强大模型1.2 大模型赋能知识图谱1.3 协同推理框架二、工业级应用场景落地2.1 智能问…...
python 视频网站爬虫教程,爬虫入门教程(付安装包)
文章目录 前言1. 环境准备Python安装选择Python开发环境安装必要库 2. 了解目标网站3. 发送请求获取页面内容4. 解析页面内容,提取视频链接5. 下载视频6. 处理反爬机制7. 完整代码示例注意事项 前言 以下为你生成一份 Python 视频网站爬虫教程,以爬取简…...
趣讲TCP三次握手
一、TCP三次握手简介 TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在TCP连接中,只有两方进行通信,它使用校验和、确认和重传机制来保证数据的可靠传输。…...
Python 字典与集合:从入门到精通的全面解析
Langchain系列文章目录 01-玩转LangChain:从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块:四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain:从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…...
基于coze+微信小程序实现图片上传并利用大模型解析
项目截图: 实现代码(直接搬去可用) 前提:需要填写你的oss配置coze的api授权配置!!! <template><view class"container"><!-- 高斯模糊背景 --><view class&qu…...
java——执行linux/cmd命令
在Java中执行命令行命令可以通过Runtime.exec()或ProcessBuilder实现。以下是两种方法的详细说明和示例代码: 1. 使用 Runtime.exec() 适用于简单场景,但需手动处理输入/输出流。 try {// 执行命令(参数以数组形式传递,避免空格…...
VMware Fusion 虚拟机Mac版 安装CentOS 7 系统
介绍 CentOS是Community Enterprise Operating System的缩写,也叫做社区企业操作系统。是企业Linux发行版领头羊Red Hat Enterprise Linux的再编译版本(是一个再发行版本),而且在RHEL的基础上修正了不少已知的 Bug ,相…...
java练习(44)
ps:题目来自力扣 两两交换链表中的节点 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 // 定义链表节点类,每个节…...
Deepseek 开源周第一天:FlashMLA
Deepseek 隆重开启开源周!第一天我们迎来了FlashMLA。我很高兴带大家了解这项创新,揭秘 FlashMLA 为何能成为 AI 和 GPU 优化领域的变革者。 Deepseek 开源周的热门话题有哪些?...
DeepSeek-OpenSourceWeek-第三天-Release of DeepGEMM
DeepGEMM:这是一款专为高效的 FP8(8 位浮点)通用矩阵乘法(GEMMs)而开发的尖端库。GEMMs 是许多 AI 工作负载(尤其是深度学习)中的基本操作。 特点: 支持稠密和 MoE GEMMs:它可以处理标准的稠密矩阵乘法以及混合专家(MoE)模型中使用的矩阵乘法。MoE 是一种神经网络架…...
Bitlocker取证之PXE降级取密钥
支持到微软Surface pro系列。...
【补阙拾遗】排序之冒泡、插入、选择排序
炉烟爇尽寒灰重,剔出真金一寸明 冒泡排序1. 轻量化情境导入 🌌2. 边界明确的目标声明 🎯3. 模块化知识呈现 🧩📊 双循环结构对比表★★★⚠️ 代码关键点注释 4. 嵌入式应用示范 🛠️5. 敏捷化巩固反馈 ✅ …...
跨AWS账户共享SQS队列以实现消息传递
在现代分布式系统中,不同的服务和组件通常需要进行通信和协作。Amazon Simple Queue Service (SQS)提供了一种可靠、可扩展且完全托管的消息队列服务,可以帮助您构建分布式应用程序。本文将介绍如何在一个AWS账户(账户A)中创建SQS队列,并授权另一个AWS账户(账户B)中的用户和角色…...
基于Python实现的【机器学习】小项目教程案例
以下是一个基于Python实现的【机器学习】小项目教程案例,结合的经典案例与最佳实践,涵盖数据预处理、模型训练与评估全流程,并附详细代码说明与结果分析: 案例1:鸢尾花分类(SVM算法) 数据集:Iris Dataset(含150个样本,4个特征,3个类别) 目标:根据花瓣与萼片长度…...
TDengine 中的数据库
数据库概念 时序数据库 TDengine 中数据库概念,等同于关系型数据库 MYSQL PostgreSQL 中的数据库,都是对资源进行分割管理的单位。 TDengine 数据库与关系型数据库最大区别是跨库操作,TDengine 数据库跨库操作除了少量几个SQL 能支持外&…...
.Net Core Visual Studio NuGet.Config 配置参考
Visual Studio 2022 NUGET NU1301 无法加载源 基础连接已关闭:无法建立SSL / TLS安全通道的信任关系;根据验证过程,远程证书无效,参考文章:https://blog.csdn.net/hefeng_aspnet/article/details/145780081 NuGet 行为…...
深入剖析 OpenCV:全面掌握基础操作、图像处理算法与特征匹配
深入剖析 OpenCV:全面掌握基础操作、图像处理算法与特征匹配 一、引言二、OpenCV 的安装(一)使用 pip 安装(二)使用 Anaconda 安装 三、OpenCV 基础操作(一)图像的读取、显示与保存(…...
帧率和带宽
帧率,通常指的是每秒传输的帧数,帧就是一段数据包。 带宽则是指在单位时间内可以传输的数据量,通常以比特每秒来衡量 帧率在ROS2中可能指的是每秒发布的消息数量。也就是说,一个节点发布话题的频率。比如,每秒发布10次…...
Immich自托管服务的本地化部署与随时随地安全便捷在线访问数据
文章目录 前言1.关于Immich2.安装Docker3.本地部署Immich4.Immich体验5.安装cpolar内网穿透6.创建远程链接公网地址7.使用固定公网地址远程访问 前言 小伙伴们,你们好呀!今天要给大家揭秘一个超炫的技能——如何把自家电脑变成私人云相册,并…...
20250212:ZLKMedia 推流
1:资料 快速开始 ZLMediaKit/ZLMediaKit Wiki GitHub GitHub - ZLMediaKit/ZLMediaKit: WebRTC/RTSP/RTMP/HTTP/HLS/HTTP-FLV/WebSocket-FLV/HTTP-TS/HTTP-fMP4/WebSocket-TS/WebSocket-fMP4/GB28181/SRT server and client framework based on C++11 文档里面提供了各个系…...
IDEA中.gitignore未忽略指定文件的问题排查与解决
IDEA 中.gitignore 未忽略.env 文件的问题排查与解决 在使用 IntelliJ IDEA 进行项目开发时,合理利用.gitignore文件来管理版本控制是非常重要的。它能帮助我们排除一些不需要纳入版本管理的文件,比如包含敏感信息的.env文件。然而,有时我们会遇到一种情况:明明已经将.env…...
Apache-iotdb 基本概念
问题背景 定义(写得太好了!) root 是整个树状结构的父节点, CirroData-TimeS 有存储组、设备、测点等概念,数据在存储的时候,不同的存储组的数据是存储在不同的文件夹中的。上图中有 root.sgcc、root.ln两…...
CryptoJS库中WordArray对象支持哪些输出格式?除了toString() 方法还有什么方法可以输出吗?WordArray对象的作用是什么?
前言:这里只说js用的CryptoJS库里的相关内容,只用js来进行代码操作和讲解。 这里网上相关的帖子很少,不得已问了很长时间AI 想引用CryptoJS库情况分两种,一种是html引用,另一种是在Nodejs里引用。 一、引用CryptoJS库…...
Java 面试题 20250227
Java 中序列化与反序列化是什么? 序列化:将 Java 对象转化成可传输的字节序列格式(字节流、JSON、XML),以便于传输和存储。 反序列化:将字节序列格式数据转化成 Java 对象的过程。 1、为什么需要序列化和…...
springboot浅析
springboot浅析 什么是springboot? 实际上springboot就是一个给我们提供了快速搭建使用spring的一种方式,让我们省去了繁琐的xml配置。 为什么无需进行大量的xml配置,就是因为springboot是基于约定优于配置的思想,简单来说就是遵循…...
【文件基础操作】小笔记
Step1: 现在项目文件夹(我的项目叫做RunPony)下创建一个a.txt文本文件,手动写入一些数字,保存 Step2: 现在在main.c内写一个基本的文件处理的程序 Step3: 现在已经知道如何打开关闭文件,下一步要搞懂如何读取txt内的…...
SSL 证书是 SSL 协议实现安全通信的必要组成部分
SSL证书和SSL/TLS协议有着密切的关系,但它们本质上是不同的概念。下面是两者的区别和它们之间的关系的表格: 属性SSL/TLS 协议SSL证书英文全称SSL(Secure Sockets Layer),TLS(Transport Layer Security&am…...
