【Docker学习-12】在IDEA远程连接docker(附ssl连接加密)超级详细
打开你的服务器,分别执行下面的命令:
1.先在/usr/local目录下创建个文件夹,这里取名叫ca,然后进入ca文件夹中
mkdir -p /usr/local/ca
cd /usr/local/ca
2.创建一个key ,需要输入密码和确认密码,请记住这个密码
openssl genrsa -aes256 -out ca-key.pem 4096
3.根据提示分别输入国家,省份,城市,组织,等一系列信息(可以随便输,无所谓的其实)
openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem
你可以乱填,或者参考如下的填法
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Hangzhou, Zhejiang Province
Locality Name (eg, city) [Default City]:XIACHENG
Organization Name (eg, company) [Default Company Ltd]:WRETCHANT.COM
Organizational Unit Name (eg, section) []:ONLINE ZUOZUO
Common Name (eg, your name or your server's hostname) []:wracaca
4.生成server-key.pem,输入下面命令敲回车即可.
openssl genrsa -out server-key.pem 4096
5.绑定IP或者域名
把下面的$Host换成你自己服务器外网的IP或者域名:比如:openssl req -subj “/CN=192.168.1.0” -sha256…
或:openssl req -subj “/CN=www.laohan.com” -sha256…(这么做前提是你有域名,该域名DNS解析后指向你的服务器)
openssl req -subj "/CN=$HOST" -sha256 -new -key server-key.pem -out server.csr
6.配置白名单
接下来要允许那些ip可以连接到服务器的docker,因为已经是ssl连接,所以我推荐配置0.0.0.0,也就是所有Ip都可以连接(但只有拥有证书的才可以连接成功),这样配置好之后公司其他人也可以使用.如果你不想这样,那你可以配置Ip,用逗号分隔开.下面的$Host依旧是你服务器外网的IP或者域名,请自行替换.(这里如果你使用的是服务器Ip的话,请将前面的DNS换成IP,否则配下来连接还是不会成功,如果你使用的是服务器域名,那么就用DNS就可以了)
echo subjectAltName = DNS:$HOST,IP:0.0.0.0 >> extfile.cnf
这里如果你设置的IP ,则需要吧DNS 改为IP,如图
7.生成ca-key
echo extendedKeyUsage = serverAuth >> extfile.cnf
8.执行下面语句,然后输入前面设置过的密码,用以生成ca-key.
openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem \-CAcreateserial -out server-cert.pem -extfile extfile.cnf
9.生成客户端所需的key.pem,依旧在该服务器下执行下面命令,到时候把生成好的几个公钥私钥拷出去即可.
openssl genrsa -out key.pem 4096
10.执行下面命令:
openssl req -subj '/CN=client' -new -key key.pem -out client.csr
echo extendedKeyUsage = clientAuth >> extfile.cnf
11.生成cert.pem,需要输入前面设置的密码
openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem \-CAcreateserial -out cert.pem -extfile extfile.cnf
12.修改权限
chmod -v 0400 ca-key.pem key.pem server-key.pem
chmod -v 0444 ca.pem server-cert.pem cert.pem
13.把证书复制过去
cp server-*.pem /etc/docker/
cp ca.pem /etc/docker/
14.修改docker配置:
vi /lib/systemd/system/docker.service
将ExecStart=/usr/bin/dockerd
替换为:
ExecStart=/usr/bin/dockerd --tlsverify --tlscacert=/etc/docker/ca.pem --tlscert=/etc/docker/server-cert.pem --tlskey=/etc/docker/server-key.pem -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock
15.重启docker
systemctl daemon-reload
systemctl restart docker
16.开放2376端口
/sbin/iptables -I INPUT -p tcp --dport 2376 -j ACCEPT
iptables-save
17.重启docker
service docker restart
18.查看文件
ls -l
19.打开idea,远程连接linux
点击 Tools 选择Start SSH session…
点击Edit credentials… 然后就会出现下面的对话框
输入主机IP,账号,密码
填写服务器ip,端口号,用户名密码,请保存密码,ok后 点击Terminal
这样就连接上服务器了
20.下载linux的文件到本地
点击Tools 选择Deployment 在选择 Browse Remote Host
右侧会出现这个
点击这个,
然后输入名称,可以随便填写,Type请选择SFTP
填写完后,点击ok
然后再输入一系列的必要
就可以连上了
21.下载文件
打开目录usr/local/ca下载文件到本地。
文件下载到了项目目录
22.通过IDEA 的docker 插件进行连接
1、默认是tcp 的,你要改成https,端口你之前设置的什么端口就是什么端口,第十二步
2、然后选择你放证书的那个文件夹
23.连接到远程docker
成功连接