打开你的服务器,分别执行下面的命令:

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

成功连接