Docker 安全 Docker HTTPS请求过程与配置

Docker 容器安全注意点 

尽量别做的事

尽量不用 --privileged 运行容器(授权容器root用户拥有宿主机的root权限)
尽量不用 --network host 运行容器(使用 host 网络模式共享宿主机的网络命名空间)
尽量不在容器中运行 ssh 服务

尽量要做的事

尽量使用最小化的镜像
尽量以单一进程运行容器
尽量使用最新版本的应用做镜像主进程
尽量使用最新版本的docker
尽量以最低权限运行容器
尽量下载使用官方的镜像或自己构建镜像从私有仓库下载镜像
尽量使用只读的方式挂载数据卷 -v 宿主机目录:容器目录:ro
尽量设置容器重启次数 --restart on-failure:N
尽量以资源限制的方式运行容器  -m   --cpu-quota  --device-write-bps




HTTPS请求过程与证书获取

http      超文本传输协议              tcp/80    明文传输
https    安全的超文本传输协议   tcp/443  密文传输    证书加密

HTTPS请求访问过程【重中之重重中之重】

0)服务端会事先通过 CA 签发证书和私钥
1)客户端发送 https 请求到服务端的 443 端口
2)服务端发送包含公钥、证书有效期及 CA 机构等信息的证书给客户端
3)客户端会先通过 CA 验证证书的有效性
4)若证书有效,客户端会在本地随机生成会话密码并通过服务端发来的公钥加密后返回给服务端
5)服务器用私钥解密获取会话密钥,之后双方即可使用会话密钥加密/解密来实现密文通信

如何获取 ssl 证书?【重要】

云服务商免费申请 或是本地openssl等生成

 

  1. 在 阿里云、腾讯云、华为云 等云服务商 申请一年前的免费证书
    1. 免费申请SSL证书及部署就是这么简单
    2. 阿里云服务器Nginx配置SSL证书,实现HTTPS访问
  2. 在服务器本地使用 openssl、mkcert、cfssl、certbot(Let's Encrypt)等工具 生成 SSL 证书
    1. 一文搞定SSL证书的所有创建问题
    2. 如何免费申请 SSL 证书

                ssl/tls 加密 通常代表 证书认证加密

服务器本地 openssl 创建证书

ca 证书和私钥  ->  服务器/客户端证书 和 私钥

yum install -y openssl

1)创建 CA 私钥和证书

openssl genrsa -out ca.key 2048                             #生成 ca 私钥 私钥长度2048、4096 只要是1024倍数
#genrsa:使用RSA算法产生私钥
#-aes256:使用256位密钥的AES算法对私钥进行加密,这样每次使用私钥文件都将输入密码,可省略
#-out:输出文件的路径,若未指定输出文件,则为标准输出
#4096:指定私钥长度,默认为1024。该项必须为命令行的最后一项参数

openssl req -new -key ca.key -out ca.csr                    #生成 ca 证书自签名请求文件

openssl x509 -req -days 3650 -in ca.csr -signkey ca.key -out ca.pem    #生成 ca 证书
#req:执行证书签发命令
#-new:新证书签发请求
#-x509:生成x509格式证书,专用于创建私有CA时使用
#-days:证书的有效时长,单位是天
#-key:指定私钥路径
#-sha256:证书摘要采用sha256算法
#-subj:证书相关的用户信息(subject的缩写)
#-out:输出文件的路径


2)创建服务端自签名请求文件

openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr


3)使用CA签发服务端证书(需要签名请求文件,ca 证书,ca 密钥)

openssl x509 -req -days 3650 -in server.csr -signkey ca.key -out server.pem

x509:生成x509格式证书
-req:输入csr文件
-in:要输入的csr文件
-CA:指定ca证书的路径
-CAkey:指定ca证书的私钥路径
-CAcreateserial:表示创建证书序列号文件,创建的序列号文件默认名称为ca.srl

完成CA证书 server证书创建后,客户端就可以进行认证【双向认证还需要按照server证书生成方式再生成client证书传送给client端,并且将ca.pam(ca证书)一并传送给客户端,客户端据此判断server.pam的有效性。】

另外对于不同的服务,还需要按照官方文档说明修改相应的配置,使其能够使用https协议并且正确使用了证书。


 


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/47706.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

十三章:使用图像级监督学习像素级语义关联性的弱监督语义分割

0.摘要 分割标签的不足是野外语义分割的主要障碍之一。为了缓解这个问题,我们提出了一个新颖的框架,根据图像级别的类别标签生成图像的分割标签。在这种弱监督的设置下,已知训练模型更倾向于分割局部有区别的部分,而不是整个物体区…

本地部署 Stable Diffusion XL 1.0 Gradio Demo WebUI

StableDiffusion XL 1.0 Gradio Demo WebUI 0. 先展示几张 StableDiffusion XL 生成的图片1. 什么是 Stable Diffusion XL Gradio Demo WebUI2. Github 地址3. 安装 Miniconda34. 创建虚拟环境5. 安装 Stable Diffusion XL Gradio Demo WebUI6. 启动 Stable Diffusion XL Gradi…

创建自己的docker python容器环境;支持新增python包并更新容器;离线打包、加载image

1、创建自己的docker python容器环境 参考:https://blog.csdn.net/weixin_42357472/article/details/118991485 首先写Dockfile,注意不要有txt等后缀 Dockfile # 使用 Python 3.9 镜像作为基础 FROM python:3.9# 设置工作目录 WORKDIR /app# 复制当前…

[语义分割] DeepLab v1网络(语义分割、信号下采样、空间上的不敏感性、LargeFOV、膨胀卷积、空洞卷积、MSc、Multi-Scale)

Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFs 论文地址:Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFs参考源码:https://github.com/TheLegendAli/DeepLab-Context DeepL…

ElementUI tabs标签页样式改造美化

今天针对ElementUI的Tabs标签页进行了样式修改,更改为如下图所属的样子。 在线运行地址:JSRUN项目-ElementUI tabs标签页样式改造 大家如果有需要可以拿来修改使用,下面我也简单的贴上代码,代码没有注释,很抱歉&#x…

React Native 0.72 版本,带来诸多更新

经过漫长的等待,React Native 终于迎来了0.72 版本,此处版本带来了Metro重要的功能更新、性能优化、开发人员体验的改进以及其他一些重要的变化。我们可以从下面的链接中获取此次版本更新的内容:0.72更新内容 一、Metro 新功能 众所周知,Metro 是 React Native 默认的 Jav…

TEE GP(Global Platform)功能认证实验室

TEE之GP(Global Platform)认证汇总 GP认证实验室主要面向功能认证、SE安全认证、TEE安全认证,对于TEE来说,则分为TEE功能认证和TEE安全认证。本文对功能认证相关实验室机构进行总结和介绍。 一、国内3家 二、国外3家 参考: GlobalPlatform …

从零开始学Docker(一):Docker的安装部署

前述:本次学习与整理来至B站【Python开发_老6哥】老师分享的课程,有兴趣的小伙伴可以去加油啦,附链接 Linux 环境:RockyLinux 9 版本管理 Docker引擎主要有两个版本:企业版(EE)和社区版&#…

go学习 4、复合数据类型

4、复合数据类型 数组、slice、map和结构体 如何使用结构体来解码和编码到对应JSON格式的数据,并且通过结合使用模板来生成HTML页面 数组和结构体是聚合类型;它们的值由许多元素或成员字段的值组成。数组是由同构的元素组成(每个数组元素都是完全相同的…

Nautilus Chain 即将治理通证 NAUT ,生态发展进程加速

独特且优势明显的 Nautilus Chain 目前,行业内首个模块化底层 Nautilus Chain 已经上线主网,并且即将有超过 70 个应用原生部署在 Nautilus Chain 上。Nautilus Chain 本身是一个以 Layer3 为定位的区块链系统,其通过 Celestia 模块化底层来…

监控和可观察性在 DevOps 中的作用!

在不断发展的DevOps世界中,深入了解系统行为、诊断问题和提高整体性能的能力是首要任务之一。监控和可观察性是促进这一过程的两个关键概念,为系统的健康状况和性能提供有价值的可见性。虽然这些术语经常互换使用,但它们代表了理解和管理复杂…

解决IDEA的git非常缓慢方法

解决IDEA的git非常缓慢方法 xxxx\IDEA2021.1.3\IntelliJ IDEA 2021.1.3\bin

如何使用 Flatpak 在 Linux 上安装 ONLYOFFICE 桌面编辑器?

Flatpak 是一款与 Linux 发行版无关的软件实用工具,可用于在 Linux 上构建和分发桌面端应用。其可帮助您安装第三方 Linux 应用程序,无需安装库或处理依赖。 ONLYOFFICE 桌面版是什么 ONLYOFFICE 编辑器桌面版是一款全面的办公工具,提供了文…

firefox笔记-Centos7离线安装firefox

目前(2023-03-22 16:41:35)Centos7自带的firefox已经很新了是2020年的。主要原因是有个web项目,用2020年的firefox打不开。 发到互联网上是2023-07-24。 报错是js有问题,估计是搞前端的只做了chrome适应,没做firefox…

618技术揭秘 - 大促弹窗搭投实践 | 京东云技术团队

背景 618 大促来了,对于业务团队来说,最重要的事情莫过于各种大促营销。如会场、直播带货、频道内营销等等。而弹窗作为一个极其重要的强触达营销工具,通常用来渲染大促氛围、引流主会场、以及通过频道活动来提升频道复访等。因此&#xff0…

【框架篇】Spring Boot 日志

Spring Boot 日志 一,日志用途 尽管一个项目在没有日志记录的情况下可能能够正常运行,但是日志记录对于我们来说却是至关重要的,它存在以下功能: 1,故障排查和调试:当项目出现异常或者故障时,…

钉钉返回:访问ip不在白名单之中,请参考FAQ

新版钉钉 在开发管理-服务器出口IP-配置返回错误信息返回给你的requestIp

Mysql sql优化

目录 目的 目标 explain 优化 避免使用select * 用union all代替union 小表驱动大表(in与exists) 批量操作 多使用limit in中值太多 不使用%前缀模糊查询 不在where子句中进行表达式操作 避免隐式类型转换 联合索引遵守最左前缀法则 inne…

平衡二叉树介绍

一、树的概念 1.1 空树和非空树 空树:结点数为0的树 非空树:有且仅有一个根节点。其中,没有后继的结点叫叶子结点,有后继的结点叫做分支结点。 如下图所示: 1.2树的属性 除了根结点外任何一个结点都有且仅有一个前…

【黑马头条之图片识别文字审核敏感词】

本笔记内容为黑马头条项目的图片识别文字审核敏感词部分 目录 一、需求分析 二、图片文字识别 三、Tess4j案例 四、管理敏感词和图片文字识别集成到文章审核 一、需求分析 产品经理召集开会,文章审核功能已经交付了,文章也能正常发布审核。对于上次…