激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

香港云服务器
服務器之家 - 服務器技術 - 服務器知識 - docker remote api一鍵TLS加密的實現

docker remote api一鍵TLS加密的實現

2021-11-24 16:46與李 服務器知識

本文主要介紹了docker remote api一鍵TLS加密的實現,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

最近公司服務器被挖礦了,最后原因定位到docker的2375端口。

讓我們來理一下,最開始發現docker中莫名其妙多了幾個鏡像和正在運行的容器,而且很吃CPU,且2375端口未設置ip訪問規則,意思就是所有人都可以通過你的2375端口操作你的docekr,且用啟動容器掛載宿主機文件夾,因為docker使用root權限啟動的,所以所有人都可以通過你的2375端口以root用戶控制你的宿主機。

下面講一下我們的應對步驟:

1、修改docker的2375端口為另外的端口,這只是權宜之計。

?
1
$ vi /usr/lib/systemd/system/docker.service

docker remote api一鍵TLS加密的實現

重啟docker:

?
1
2
$ systemctl daemon-reload
$ systemctl restart docker

2、給docker進行tls加密

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/bin/bash
mkdir -p /root/tls/pem
DOMAIN_HOST=`ifconfig eth0 | grep "inet" | awk '{ print $2}' | sed -n '1p;1q'`
#DOMAIN_HOST=`hostname` #選擇域名方案最好
HOST=$DOMAIN_HOST
# 自定義信息
PASSWORD="yourPassword"
COUNTRY=CN
PROVINCE=gd
CITY=gz
ORGANIZATION=dounine
GROUP=dg
NAME=lake
SUBJ="/C=$COUNTRY/ST=$PROVINCE/L=$CITY/O=$ORGANIZATION/OU=$GROUP/CN=$HOST"
# 自定義信息
#============================================================================================
#此形式是自己給自己簽發證書,自己就是CA機構,也可以交給第三方機構去簽發
# 生成根證書RSA私鑰,password作為私鑰密碼(身份證)
openssl genrsa -passout pass:$PASSWORD -aes256 -out /root/tls/pem/ca-key.pem 4096
# 2.用根證書RSA私鑰生成自簽名的根證書(營業執照)
openssl req -new -x509 -days 365 -passin pass:$PASSWORD -key /root/tls/pem/ca-key.pem -sha256 -subj $SUBJ -out /root/tls/pem/ca.pem
#============================================================================================
#給服務器簽發證書
# 1.服務端生成自己的私鑰
openssl genrsa -out /root/tls/pem/server-key.pem 4096
# 2.服務端生成證書(里面包含公鑰與服務端信息)
openssl req -new -sha256 -key /root/tls/pem/server-key.pem -out /root/tls/pem/server.csr -subj "/CN=$DOMAIN_HOST"
# 3.通過什么形式與我進行連接,可設置多個IP地扯用逗號分隔
echo subjectAltName=IP:$DOMAIN_HOST,IP:0.0.0.0 > /tmp/extfile.cnf
# 4.權威機構對證書進行進行蓋章生效
openssl x509 -passin pass:$PASSWORD -req -days 365 -sha256 -in /root/tls/pem/server.csr -CA /root/tls/pem/ca.pem -CAkey /root/tls/pem/ca-key.pem -CAcreateserial -out /root/tls/pem/server-cert.pem -extfile /tmp/extfile.cnf
#============================================================================================
#給客戶端簽發證書
openssl genrsa -out /root/tls/pem/client-key.pem 4096
openssl req -subj '/CN=client' -new -key /root/tls/pem/client-key.pem -out /root/tls/pem/client.csr
echo extendedKeyUsage = clientAuth > /tmp/extfile.cnf
openssl x509 -passin pass:$PASSWORD -req -days 365 -sha256 -in /root/tls/pem/client.csr -CA /root/tls/pem/ca.pem -CAkey /root/tls/pem/ca-key.pem -CAcreateserial -out /root/tls/pem/client-cert.pem -extfile /tmp/extfile.cnf
#============================================================================================
# 清理文件
rm -rf /root/tls/pem/ca-key.pem
rm -rf /root/tls/pem/{server,client}.csr
rm -rf /root/tls/pem/ca.srl
# 最終文件
# ca.pem  ==  CA機構證書
# client-cert.pem  ==  客戶端證書
# client-key.pem  ==  客戶私鑰
# server-cert.pem  == 服務端證書
# server-key.pem  ==  服務端私鑰

注意:

  • 當DOMAIN_HOST設置成域名時,echo subjectAltName=IP:$DOMAIN_HOST,IP:0.0.0.0 > /tmp/extfile.cnf這段代碼的$DOMAIN_HOST應該替換為你的服務器的公網ip
  • echo subjectAltName=IP:$DOMAIN_HOST,IP:0.0.0.0 > /tmp/extfile.cnf中的IP:0.0.0.0表示所有ip都可以通過攜帶證書訪問,雖然這里是設定了所有,但是不應該省略顯示的定義自己服務器的公網ip。即為IP:$yourip,IP:0.0.0.0,而不是IP:0.0.0.0

賦予該文件執行權限:

?
1
$ chmod +x tls.sh

執行該shell腳本后,會在/root/tls/pem目錄下生成ca.pem、client-cert.pem、client-key.pem 、server-cert.pem、server-key.pem。

然后修改docker配置:

?
1
$ vim /usr/lib/systemd/system/docker.service

添加:

?
1
2
3
4
--tlsverify \
--tlscacert=/root/tls/pem/ca.pem \
--tlscert=/root/tls/pem/server-cert.pem \
--tlskey=/root/tls/pem/server-key.pem \

docker remote api一鍵TLS加密的實現

重啟docker:

?
1
2
$ systemctl daemon-reload
$ systemctl restart docker

現在使用docker remote api進行連接:

無認證:

?
1
$ docker -H tcp://192.168.0.150:2376 version

會報錯未認證。

攜帶認證方式:

?
1
docker --tlsverify --tlscacert=/root/tls/pem/ca.pem --tlscert=/root/tls/pem/client-cert.pem --tlskey=/root/tls/pem/client-key.pem -H tcp://192.168.0.150:2376 version

到此這篇關于docker remote api一鍵TLS加密的實現的文章就介紹到這了,更多相關docker remote api一鍵TLS加密內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/qq_37171817/article/details/108473228

延伸 · 閱讀

精彩推薦
1235
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 免费一级毛片在线播放不收费 | 成人aaaaa片毛片按摩 | 91精品国啪老师啪 | 蜜桃视频在线免费观看 | 天堂成人国产精品一区 | 日本不卡视频在线观看 | 国产资源在线观看 | 亚洲日本欧美 | 久久久久国产视频 | 精品成人免费一区二区在线播放 | 欧美不卡三区 | 亚洲影院在线播放 | 亚洲影视在线 | 久久成人国产精品 | 韩国精品视频在线观看 | 免费永久看羞羞片网站入口 | 亚洲最黄视频 | 亚洲av毛片在线观看 | 免费网站看v片在线a | 久草在线视频中文 | 欧美精品一级片 | 欧美日韩电影在线 | 少妇激情视频 | 久久精品一二三区 | 国产一区二区三区在线观看视频 | 日本黄色大片免费 | 亚洲电影免费观看国语版 | 日本欧美一区二区 | 久久精品免费网站 | 少妇一级淫片免费放播放 | 韩国精品一区二区三区四区五区 | 国产精品免费大片 | 国产亚洲激情 | 亚洲电影在线观看高清免费 | 精品国产视频一区二区三区 | 亚洲视频高清 | 亚洲精品a级| 27xxoo无遮挡动态视频 | 亚洲精品午夜在线 | 色婷婷久久久亚洲一区二区三区 | 久久精品.com |