Docker安全配置問題


本文轉載自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,然后下面的路徑為認證文件存放路徑,不出意外的話應該是沒問題的

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM