本文轉載自https://www.cnblogs.com/walterlong/articles/11444770.html,侵刪
1.在服務器上安裝好Docker;
2.生成認證文件,有兩種方式:
(1)按照官網的提示一步一步的生成:https://docs.docker.com/engine/security/https/
(2)直接將所有的命令直接寫在腳本文件中執行:
#創建 Docker TLS 證書 #!/bin/bash #相關配置信息 SERVER="serverIp or serverDNS" PASSWORD="pwd" COUNTRY="CN" STATE="Hubei" CITY="Wuhan" ORGANIZATION="suibian" ORGANIZATIONAL_UNIT="suibian" EMAIL="xxx@xxx.xxx" ###開始生成文件### echo "開始生成文件" #切換到生產密鑰的目錄 cd /opt/about-docker-dont-touch #生成ca私鑰(使用aes256加密) openssl genrsa -aes256 -passout pass:$PASSWORD -out ca-key.pem 4096 #生成ca證書,填寫配置信息 openssl req -new -x509 -passin "pass:$PASSWORD" -days 3650 -key ca-key.pem -sha256 -out ca.pem -subj "/C=$COUNTRY/ST=$STATE/L=$CITY/O=$ORGANIZATION/OU=$ORGANIZATIONAL_UNIT/CN=$SERVER/emailAddress=$EMAIL" #生成server證書私鑰文件 openssl genrsa -out server-key.pem 4096 #生成server證書請求文件 openssl req -subj "/CN=$SERVER" -new -key server-key.pem -out server.csr #配置白名單 你使用的是服務器Ip的話,請將前面的DNS換成IP echo subjectAltName = IP:$SERVER,IP:0.0.0.0 >> extfile.cnf sh -c 'echo "subjectAltName = IP:'$SERVER',IP:0.0.0.0" >> extfile.cnf' sh -c 'echo "extendedKeyUsage = serverAuth" >> extfile.cnf' #使用CA證書及CA密鑰以及上面的server證書請求文件進行簽發,生成server自簽證書 openssl x509 -req -days 3650 -in server.csr -CA ca.pem -CAkey ca-key.pem -passin "pass:$PASSWORD" -CAcreateserial -out server-cert.pem -extfile extfile.cnf #生成client證書RSA私鑰文件 openssl genrsa -out key.pem 4096 #生成client證書請求文件 openssl req -subj "/CN=client" -new -key key.pem -out client.csr sh -c 'echo extendedKeyUsage=clientAuth >> extfile-client.cnf' #生成client自簽證書(根據上面的client私鑰文件、client證書請求文件生成) openssl x509 -req -days 3650 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -passin "pass:$PASSWORD" -CAcreateserial -out cert.pem -extfile extfile-client.cnf #更改密鑰權限 chmod 0400 ca-key.pem key.pem server-key.pem #更改密鑰權限 chmod 0444 ca.pem server-cert.pem cert.pem #刪除無用文件 rm client.csr server.csr #復制需要的文件到docker目錄 cp server-*.pem /etc/docker/ cp ca.pem /etc/docker/ echo "生成文件完成" ###生成結束###
3.現在按照腳本命令執行之后,會生成認證文件:


因為在腳本中已經完成了文件復制,所以就不用自己手動操作
如果在運行文件的時候出現了問題,那么參照那篇文章
4.將/opt中拷貝三個文件到本地Windows,拷貝的方式就不說了,本人使用的FileZilla,三個文件分別是:

這是拷貝到本地Windows之后的顯示,假設位於D://Docker文件夾下
5.這一步是很重要的,連官網都沒寫的
修改docker.service文件的內容,具體如下:
vim /lib/systemd/system/docker.service
然后在出現的文件中,注釋掉原本的ExecStart,替換為如下(端口設置為2376是為了安全):
ExecStart=/usr/bin/dockerd --tlsverify --tlscacert=/etc/docker/ca.pem --tlscert=/etc/docker/server-cert.pem --tlskey=/etc/docker/server-key.pem -H fd:// -H tcp://0.0.0.0:2376 --containerd=/run/containerd/containerd.sock
最后的樣式如下:

然后就是重啟Docker
.在IDEA中打開Docker插件(關於插件的下載安裝咱也不說了,能走到這一步的應該都會),然后在界面中輸入https:xx.xx.xx.xx:2376,然后下面的路徑為認證文件存放路徑,不出意外的話應該是沒問題的

