当前位置: 首页 > news >正文

【Docker】2、配置SSL证书远程访问Docker

1、使用 openssl 生成 ca

  • 1、创建文件夹
mkdir -p /root/docker
cd /root/docker
  • 2、创建 RSA 私钥

会提示 2 次输入证书密码,至少 4 位,创建后会生成一个 ca-key.pem 文件

openssl genrsa -aes256 -out ca-key.pem 4096

得到 ca-key.pem 文件

  • 3、创建 CA 证书

根据 ca-key.pem 密钥创建 CA 证书,需要输入一次前面的私钥密码,这里是自己给自己签发证书

openssl req -new -x509 -days 999 -key ca-key.pem -sha256 -subj "/CN=*" -out ca.pem

得到 ca.pem 文件

  • 4、创建服务端私钥
openssl genrsa -out server-key.pem 4096

得到 server-key.pem

  • 5、创建服务端签名请求证书文件
openssl req -subj "/CN=*" -sha256 -new -key server-key.pem -out server.csr

得到 server.csr 文件

  • 6、指定 IP

允许指定的 ip 可以连接到服务器中的 docker,多个 ip 用逗号分隔,把下面的 2 个 127.0.0.1 改成服务器 IP 地址

echo subjectAltName = DNS:127.0.0.1,IP:127.0.0.1,IP:0.0.0.0 >> extfile.cnf

得到 extfile.cnf 文件

  • 7、将 Docker 守护程序密钥的扩展使用属性设置为仅用于服务器身份验证
echo extendedKeyUsage = serverAuth >> extfile.cnf
  • 8、创建签名生效的服务端证书文件

需要输入一次前面设置的密码

openssl x509 -req -days 999 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -extfile extfile.cnf

得到 server-cert.pem 文件

  • 9、创建客户端私钥

用于客户端远程连接的认证

openssl genrsa -out key.pem 4096
  • 10、创建客户端签名请求证书文件
openssl req -subj "/CN=client" -new -key key.pem -out client.csr

得到 client.csr 文件

  • 11、创建 extfile.cnf 的配置文件
echo extendedKeyUsage = clientAuth > extfile-client.cnf
  • 12、创建签名生效的客户端证书文件

需要输入一次前面设置的密码

openssl x509 -req -days 999 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem -extfile extfile-client.cnf
  • 13、删除多余的文件
rm -rf ca.srl client.csr extfile.cnf extfile-client.cnf server.csr

我们剩下的文件有:

ca.pem,CA机构证书
ca-key.pem,根证书RSA私钥
cert.pem,客户端证书
key.pem,客户私钥
server-cert.pem,服务端证书
server-key.pem,服务端私钥

2、配置 Docker 支持 TSL 连接

vim /lib/systemd/system/docker.service

找到 ExecStart = 开头的一行代码,把默认的

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

追加内容如下:

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock \--tlsverify --tlscacert=/etc/docker/ca.pem \--tlscert=/etc/docker/server-cert.pem \--tlskey=/etc/docker/server-key.pem \-H tcp://0.0.0.0:2375

3、重启 Docker

  • 刷新配置
systemctl daemon-reload
  • 重启 Docker
systemctl restart docker

4、远程连接 Docker

  • 1、下载证书

将服务器上生成的 ca.pem、cert.pem、key.pem 文件下载至本地指定文件夹下

在这里插入图片描述

  • 2、IDEA 中连接 Docker

在这里插入图片描述
使用 TCP socket 方式连接 Docker

https://192.168.52.132:2375
  • Certificates folder 选择下载的证书文件夹
E:\Desktop\docker

出现 Connection successful 则表示 Docker 连接成功

如您在阅读中发现不足,欢迎留言!!!

相关文章:

【Docker】2、配置SSL证书远程访问Docker

1、使用 openssl 生成 ca 1、创建文件夹 mkdir -p /root/dockercd /root/docker2、创建 RSA 私钥 会提示 2 次输入证书密码,至少 4 位,创建后会生成一个 ca-key.pem 文件 openssl genrsa -aes256 -out ca-key.pem 4096得到 ca-key.pem 文件 3、创建…...

HFish蜜罐管理端搭建:构建网络安全的主动防御系统

引言 在网络攻防对抗日益激烈的今天,蜜罐技术作为一种有效的主动防御手段,越来越受到网络安全专家的青睐。HFish蜜罐以其强大的功能和灵活的部署方式,成为网络安全防护体系中的重要组成部分。本文将详细介绍如何在CentOS 7.6系统上搭建HFish…...

探秘AI艺术:揭开Midjourney绘画的神秘面纱

在当今这个数字化迅速发展的时代,AI技术已经深入到我们生活的方方面面,而最令人着迷的莫过于它在艺术创作领域的应用。“Midjourney绘画”就是这样一个令人惊叹的例子,它通过高级AI技术,能够帮助用户生成独一无二的艺术作品。但是…...

29-ESP32-S3-WIFI_Driver-00 STA模式扫描全部 AP

ESP32-S3 WIFI_Driver 引言 ESP32-S3是一款集成了Wi-Fi和蓝牙功能的芯片。关于WIFI的部分,其实内容比我想象的要多得多。所以通常来说,如果你想要编写自己的Wi-Fi应用程序,最快捷的方法就是先找一个类似的示例应用,然后将它的相…...

2024了,还有人在问为甚死锁?

大家好,我是javapub。 接上篇提到了锁,《InnoDB有哪些锁类型》。这么多的锁,你有遇到过死锁吗? 死锁是在事务数据库中会发生的一种特殊现象,多个事务在执行过程中,相互等待对方持有的资源,导致…...

Java中Arrays.toString与new String()字节数组使用的差异

Java 编程语言提供了许多内置方法和类,这使得程序员能够更加方便的处理数据和对象。本文将讨论 Arrays.toString 方法和 new String() 方法在处理字节数组时的不同。 文章目录 Arrays.toString 方法new String() 方法总结 Arrays.toString 方法 Arrays.toString() …...

开源表单流程设计器有哪几个突出的优势特点?

当前,传统的表单制作已经无法满足现在企业的发展需求了。想要实现高效率发展,需要引进先进的低代码技术平台、开源表单流程设计器等优秀软件平台助力发展。它们具有可视化操作界面、灵活好操作、易维护、效率高等诸多优势特点,在推动企业实现…...

景源畅信:抖音小店如何开橱窗?

在当今数字化时代,社交媒体平台不仅仅是人们交流和分享生活的工具,更成为了商家们展示和销售产品的重要场所。抖音作为一款流行的短视频社交应用,其内置的电商功能——抖音小店,为众多商家和个人提供了便捷的在线销售途径。其中&a…...

Unix环境高级编程--8-进程控制---8.7函数waitid 8.8函数wait3 wait4

1、Single Unix Specification支持一个取得进程终止状态的函数--waitid,此函数类似于waitpid: pid_t wait(int *status); pid_t waitpid(pid_t pid, int *status, int options); int waitid(idtype_t idtype, id_t id, siginfo_t *infop, int options); …...

window.addEventListener 用法

window.addEventListener 是JavaScript中用来为DOM元素(在本例中是浏览器窗口window)添加事件监听器的方法。这对于响应用户操作(如点击、滚动等)或页面/浏览器的特定状态变化非常有用。下面是如何使用window.addEventListener的基…...

【全开源】活动报名表单系统(ThinkPHP+Uniapp+uView)

轻松构建高效报名平台 一、引言 随着线上活动的日益增多,一个高效、易用的活动报名表单系统成为了举办各类活动的必备工具。为了满足不同组织和个人的需求,我们推出了功能强大的“活动报名表单系统源码”。本文将为您详细介绍该源码的特点、功能以及使…...

python接口自动化之会话保持

🍦 会话保持-token 有的网站登录需要token鉴权,是啥意思呢,现在有两个接口,一个接口是登录,一个接口是提交订单,那你怎么保证,提交登录这个用户是登录状态呢。登录成功的接接口会在response里面…...

script 标签中 defer 和 async 属性的区别

script 标签中的 defer Vs. async 在 HTML 中,script 标签可以使用 defer 和 async 属性来控制外部 JavaScript 脚本加载和执行的方式。defer 和 async 都可以提高页面的加载性能,主要区别整理如下。 区别点deferasync加载顺序按顺序加载异步加载&…...

【axios】的浅度分析

一、Axios的拦截器能干些什么? Axios拦截器的实现原理主要涉及两个方面:请求拦截器和响应拦截器,它们分别在请求发送前和响应返回后进行预处理和后处理。 Axios内部维护了两个数组,一个用于存储请求拦截器,另一个用于…...

基于单片机的步进电机控制系统研究

摘 要 : 近年来 , 步进电机凭借其定位精度高 、 使用方便 、 性价比高 、 容易控制等优点 , 在各领域受到广泛应用 。 文中利用C52 单片机设计了一种步进电机控制系统 , 介绍了其总体方案 、 主控制模块 、 驱动电路 、 键盘 、 晶…...

Fine-tuning和模型训练的关系

概述 Fine-tuning和模型训练不是完全相同的概念,但它们之间有密切的关系,都是机器学习和深度学习过程中的重要步骤。 模型训练是一个更广泛的概念,指的是使用数据去调整模型的内部参数,以使得模型能够从输入数据中学习并做出预测…...

【ai】livekit:Agents 3 : pythonsdk和livekit-agent的可编辑模式下的安装

livekit-agent 依赖于livekit、livekit-api、livekit-protocol 其中livekit就是livekkit-rtc: 包含俩sdk 实时互动sdkReal-time SDK for connecting to LiveKit as a participant livekit-api : 服务端sdk https://pypi.org/project/livekit-api/ livekit的python sdk...

【传知代码】BERT论文解读及情感分类实战-论文复现

文章目录 概述原理介绍BERT模型架构任务1 Masked LM(MLM)任务2 Next Sentence Prediction (NSP)模型输入下游任务微调GLUE数据集SQuAD v1.1 和 v2.0NER 情感分类实战IMDB影评情感数据集数据集构建模型构建 核心代码超参数设置训练结果注意事项 小结 本文…...

【C language】判断一个正整数是否是2^n

题解:判断一个正整数是否是2^n(位运算方法) 1.题目 判断一个正整数是否是2^n 2.位运算法 思路:干掉二进制最右边的1,看是否是0 int main() {int num 16;if ((num & (num - 1)) 0) printf("the num is a 2^n");else print…...

解锁Android高效数据传输的秘钥 - Parcelable剖析

作为Android开发者,我们经常需要在不同的组件(Activity、Service等)之间传输数据。这里的"传输"往往不仅仅是简单的数据复制,还可能涉及跨进程的内存复制操作。当传输的数据量较大时,这种操作可能会带来严重的性能问题。而Android系…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用

1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南

文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/55aefaea8a9f477e86d065227851fe3d.pn…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...

MySQL 部分重点知识篇

一、数据库对象 1. 主键 定义 :主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 :确保数据的完整性,便于数据的查询和管理。 示例 :在学生信息表中,学号可以作为主键&#xff…...

数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !

我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...

全面解析数据库:从基础概念到前沿应用​

在数字化时代,数据已成为企业和社会发展的核心资产,而数据库作为存储、管理和处理数据的关键工具,在各个领域发挥着举足轻重的作用。从电商平台的商品信息管理,到社交网络的用户数据存储,再到金融行业的交易记录处理&a…...

第八部分:阶段项目 6:构建 React 前端应用

现在,是时候将你学到的 React 基础知识付诸实践,构建一个简单的前端应用来模拟与后端 API 的交互了。在这个阶段,你可以先使用模拟数据,或者如果你的后端 API(阶段项目 5)已经搭建好,可以直接连…...