docker容器安全注意:
尽量别做的事:
尽量不用 --privileged 运行容器授权容器root用户拥有宿主机的root权限
尽量不在 容器中运行 ssh 服务
尽量不用 --network host 使用 host 网络模式运行容器
尽量要做的事:
尽量使用最小化的镜像
尽量使用最少资源和最低权限运行容器
尽量使用只读的方式挂载数据卷 -v host:container:ro
尽量使用 on-failure 限制容器的重启次数
运行容器时要限制 CPU、内存、IO 的使用上限
尽量使用官方的镜像下载或者自己构建镜像从私有仓库中下载
HTTPS
http 80 明文传输
https 443 加密传输 证书加密
ca 证书和私钥 -> 证书 和 私钥
ssl/tls加密 即 证书认证加密
//https请求访问的过程?
0) 服务端会事先通过CA生成证书和私钥
1) 客户端发送https请求到服务端的443端口
2) 服务端发送包含公钥、证书有效期及ca机构等信息的证书给客户端
3) 客户端会先通过CA验证证书有效性
4) 若证书有效客户端会在本地生成会话密钥并通过server发来的公钥加密返回给服务端
5) 服务端会用私钥解密得到会话密钥,之后双方即可使用会话密钥加密/解密来实现密文通信
//如何获取ssl证书?
1)在 阿里云/华为云/腾讯云 申请 一年期的免费证书
2)openssl、mkcert、let's encrypt 自签证书
#创建CA证书
openssl genrsa -out ca.key 4096
openssl req -new -key ca.key -out ca.csr
openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt
#创建自签名请求文件
openssl genrsa -out server.key 4096
openssl req -new -key server.key -out server.csr
#CA签发证书文件
openssl x509 -req -days 365 -in server.csr -signkey ca.key -out server.crt
四大重启策略
①no 总不重启
②always 总是重启
③on-failure 非正常状态下重启,可以指定次数
④unless-stopped 总是重启,但是在docker启动情况下不重启(docker是守护者)