详细介绍了Docker开启远程安全访问的详细示例教程,按照图文并茂的方式非常详细。对大家的学习、培训或者工作都有一定的参考价值,一定要朋友们参考。
一、写docker.service文档
VI/usr/lib/systemd/system/docker.service
寻找[Service]连接点,更改ExecStart特性,升级-hTCP://0.0.0:2375。
ExecStart=/usr/bin/dockerd-HFD://-containerd=/run/containerd/containerd.sock-HTCP://0.0.0.0:2375
那就相当于扩展开放了端口号2375,自然可以根据自身情况换成别的。
二。重装码头设备生效
systemctl守护程序-重新加载
systemctl重新启动docker
请根据你的电脑浏览器访问2375进行测试。文件格式为:http://ip:2375/version。
如果无法访问,可以尝试打开服务器防火墙2375端口号。实际说明如下:
防火墙-cmd-zone=public-add-port=2375/TCP-permanent
防火墙-cmd-reload
如果还是无法访问,如果应用设备是云主机,比如阿里云服务器、腾讯云服务,就必须去数据库安全组标准看端口号2375是否对外开放。如果没有配备,您可以升级端口配置。
然后你可以在Idea中的Docker软件中立即连接和检测:
三。配备Docker安全访问
以上两个步骤不要在工作环境中使用!用在开发工具里就好了。如果Docker马上暴露在公众面前,那就风险很大,就像你没有给Redis6379设置密码一样。
在网上很多文章的基础上,内容都是以上两步,裸跑的过程……你品味它,你细细品味它,不会让你劫持给任何人。
其实官方的在线文本文档已经根据CA资质证书展示了加密方法。点击此处了解详情。
1.建立CA公钥和CA公钥。
首先,建立一个ca文件夹来存储公钥和公钥。
mkdir-p/usr/local/ca
CD/usr/local/ca
然后,在Docker守护进程的服务器上,形成CA公钥和公钥:
OpenSSLgenRSA-AES256-outca-key.PEM4096
执行上述命令后,将要求您输入支付密码,然后才能进行下一步。在这里,我将密码设置为:niceyoo。
2.完成CA资质证书的信息内容。
执行以下命令:
opensslreq-new-x509-days365密钥ca-key.pem-sha256-outca.pem
然后输入:access登录密码,我们国家的名称,省,市,组织,公司名称,任何名称,电子邮件地址等。为了更方便,我用了niceyoo,而不是机构和企业。
中国北京北京apkdream@163.com
至此,CA资格证书已经建立。拥有CA后,您可以建立网络服务器密钥和证书签名要求(CSR),以确保“公用名”与连接到Docker时使用的IP地址相匹配。
3.形成server-key.pem
OpenSSLgenRSA-outserver-key.PEM4096
4.用CA签署公钥
因为可以根据IP地址和DNS名称创建TLS连接,所以在建立资格证书时需要指定IP地址。例如,10.211.55.4允许加入:
OpenSSLreq-subj"/CN=10.211.55.4"-sha256-new-keyserver-key.PEM-outserver.CSR
如果您使用的是网站地址(例如:www.sscai.club),只需将其更改为:
OpenSSLreq-subj"/CN=www.sscai.club"-sha256-new-keyserver-key.PEM-outserver.CSR
注:此处网站的ip或域名均指未来将对外开放的详细地址。
5、具有授权管理
授权管理的实际意义取决于允许什么ip远程连接docker。有两种方法,但5.2的第二个过程可以立即实施:
5.1。允许特定的ip连接到网络服务器中的docker。几个IP用分号隔开。
如果你公开的docker详细地址是ip详细地址,给出如下说明:
echosubjectAltName=DNS:$HOST,IP:XX。XX.XX.XX,IP:XX。XX.XX.XX>>extfile.cnf
申请的时候把$HOST改成自己的ip详细地址或者网址,这个要看你暴露的docker连接是ip还是网址。
#10.211.55.4网络服务器上的docker,只容许ip详细地址为221.217.177.151的顾客联接 echosubjectAltName=DNS:10.211.55.4,IP:221.217.177.151>>extfile.cnf #www.sscai.club网络服务器上的docker,只容许ip详细地址为221.217.177.151与127.0.0.1的顾客联接 echosubjectAltName=DNS:www.sscai.club,IP:221.217.177.151,IP:127.0.0.1>>extfile.cnf5.2。配备0.0.0.0,可以连接所有IP(但只有拥有永久资质证书的IP才能成功连接)
echosubjectaltname=DNS:10.211.55.4,IP:0.0.0.0>;>extfile.cnf
6.运行命令。
将Docker守护进程密钥的扩展应用程序功能设置为仅用于网络服务器验证:
echoextendedkeyusage=serverauth>;>extfile.cnf
7.形成带符号的整数金额。
OpenSSLx509-req-days365-sha256-inserver.CSR-CACA.PEM-CAkeyCA-key.PEM\
-cacreateserial-outserver-cert.PEM-extfileextfile.cnf
实现后,您必须键入上面设置的登录密码。
8.形成手机客户端的key.pem
OpenSSLgenRSA-outkey.PEM4096
OpenSSLreq-subj'/CN=client'-new-keykeykey.PEM-outclient.CSR
9.使密钥适用于手机客户端认证。
展开环境变量:
echoextendedkeyusage=clientauth>;>extfile.CNF
echoextendedkeyusage=clientauth>;extfile-client.cnf
10.形成带符号的整数金额。
OpenSSLx509-req-days365-sha256-inclient.CSR-CACA.PEM-CAkeyCA-key.PEM\
-CAcreateserial-outcert.PEM-extfileextfile-client.cnf
要形成cert.pem,您必须重新输入之前设置的登录密码:niceyoo。
11.删除未使用的文档,需要两个整数签名。
在形成cert.pem之后,server-cert.pem可以安全地删除两个证书签名要求并扩展环境变量:
RM-vclient.CSRserver.CSRextfile.cnfextfile-client.cnf
12.管理权限可以更改。
为了更好地保护您的密钥免受意外损坏,请删除其加载管理权限。要让他们只为您阅读文章,请按如下方式更改文档格式:
chmod-v0400ca-key.PEMkey.PEMserver-key.PEM
如果资质证书可以使其可写并对外开放,则删除装载管理权限,避免意外损坏:
chmod-v0444ca.pem服务器-cert.pem证书.pem
13.记账服务器证书
cp服务器-*。PEM/etc/docker/
CPca.PEM/etc/docker/
14.更换码头设备。
使Docker守护进程只接受来自出示CA信任证书的手机客户端的连接。
vim/lib/systemd/system/docker.service
更改ExecStart特征值:
ExecStart=/usr/bin/dockerd-TLSverify-tlscacert=/usr/local/ca/ca.PEM-TLScert=/usr/local/ca/server-cert.PEM-TLSkey=/usr/local/ca/server-key.PEM-HTCP://0.0.0.0:2375-HUNIX:///var/run/dockersock
15.重新加载守护进程并重启docker。
systemctl守护程序-重新加载
systemctl重新启动docker
让我们转到IDEA中的docker控制模块进行认证,先看一下之前的连接:
显然,你不能连接。此时,您必须获得docker主机建立的资格证书,然后通过申请资格证书进行连接:
将这四个鉴定文档保存到本地文件夹中。该文件夹名称将用于idea中的特定名称。不得不说,TCP中的连接一定要改成Https文件格式。主要内容如下图所示:
摘要
到目前为止,这篇关于Docker对远程安全访问的说明的文章已经在这里详细介绍过了。有关Docker远程访问的大量信息,请搜索您以前的文章或再次访问下面的相关文章。期待你以后更多的应用!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)