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

文章详细讨论了Docker容器的安全注意事项,包括避免使用特权模式和主机网络模式,不运行SSH服务,以及采取最佳实践如使用最小镜像和限制容器权限。同时,重点介绍了HTTPS的请求过程和证书验证,强调了证书在安全通信中的重要性,并提供了如何获取和创建SSL证书的方法,包括使用云服务商和本地openssl工具。
摘要由CSDN通过智能技术生成

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协议并且正确使用了证书。


 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值