最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker實現(xiàn)TLS和CA認證的方法步驟

 更新時間:2024年06月21日 10:54:25   作者:為什么要做囚徒  
為了更便捷地連接Docker服務(wù)器,Docker服務(wù)器需要開放2375端口才能連接docker,本文主要介紹了Docker實現(xiàn)TLS和CA認證的方法步驟,具有一定的參考價值,感興趣的可以了解一下

1. 引言

我們?nèi)粘9ぷ鳟斨袝龅竭@些需求:

  • 監(jiān)控Docker容器
  • 在idea開發(fā)工具中連接Docker,直接發(fā)布至服務(wù)器
  • Jenkins連接Docker

為了更便捷地連接Docker服務(wù)器,Docker服務(wù)器需要開放2375端口才能連接docker,但如果開放了端口沒有做任何安全保護,會引起安全漏洞,被人入侵、挖礦、CPU飆升這些情況都有發(fā)生,任何知道你IP的人,都可以管理這臺主機上的容器和鏡像,非常不安全,這個時候TLS和CA就閃亮登場。。。

2. 初識TLS和CA

Docker TLS(Transport Layer Security)和 CA(Certificate Authority)是用于加密和認證 Docker 守護進程與客戶端之間通信的一種機制。

  • TLS(Transport Layer Security)

    • TLS 是一種加密通信協(xié)議,用于確保通信過程中的數(shù)據(jù)傳輸安全。
    • 在 Docker 中,TLS 可以用于加密 Docker 守護進程與客戶端(如 Docker CLI、Docker Compose 等)之間的通信,以防止數(shù)據(jù)在傳輸過程中被竊取或篡改。
  • CA(Certificate Authority)

    • CA 是證書頒發(fā)機構(gòu)的縮寫,負責簽發(fā)和管理數(shù)字證書。
    • 在使用 TLS 加密通信時,CA 用于簽發(fā)和管理用于認證通信雙方身份的數(shù)字證書。
    • 在 Docker 中,CA 通常會簽發(fā) Docker 守護進程和客戶端之間通信所需的數(shù)字證書,用于認證雙方的身份,確保通信的安全性。

在配置 Docker TLS 時,通常會生成一組證書和私鑰,并使用 CA 簽名這些證書,然后將這些證書分發(fā)給 Docker 守護進程和客戶端??蛻舳耸褂米C書與私鑰來進行身份驗證,而 Docker 守護進程使用 CA 頒發(fā)的證書驗證客戶端的身份。這樣就建立了一種安全的通信機制,確保 Docker 守護進程與客戶端之間的通信是加密的、受信任的。

3. 開啟TLS和CA認證

3.1 生成證書

  • 生成CA證書的shell腳本

創(chuàng)建證書存放目錄

# /mydata/cert/docker這個目錄改了下面相關(guān)都得改 自己替換 

mkdir -p /mydata/cert/script /mydata/cert/docker #cert文件目錄   

查看服務(wù)器主機名

hostname

創(chuàng)建腳本文件

vim /mydata/cert/script/auto-cert.sh   #編輯腳本

腳本命令如下:

#!/bin/bash

# 一鍵生成TLS和CA證書

# Create : 2024-03-27
# Update : 2024-03-27
# @Autor : xiaomuchong

# 服務(wù)器主機名
SERVER="Docker110"
# 密碼
PASSWORD="xmc@2011"
# 國家
COUNTRY="CN"
# 省份
STATE="四川省"
# 城市
CITY="成都市"
# 機構(gòu)名稱
ORGANIZATION="佳緣科技"
# 機構(gòu)單位
ORGANIZATIONAL_UNIT="醫(yī)療事業(yè)部"
# 郵箱
EMAIL="17501123@qq.com"
# 創(chuàng)建ca證書目錄
mkdir -p /mydata/cert/docker
# 進入ca證書目錄
cd /mydata/cert/docker

# 生成CA密鑰
openssl genrsa -aes256 -passout pass:$PASSWORD  -out ca.pem 2048

# 生成CA證書
openssl req -new -x509 -passin "pass:$PASSWORD" -days 3650 -key ca.pem -sha256 -out ca-cert.pem -subj "/C=$COUNTRY/ST=$STATE/L=$CITY/O=$ORGANIZATION/OU=$ORGANIZATIONAL_UNIT/CN=$SERVER/emailAddress=$EMAIL"

# 生成服務(wù)端密鑰
openssl genrsa -out server-key.pem 2048

# 生成服務(wù)端證書簽名的請求文件
openssl req -subj "/CN=$SERVER" -new -key server-key.pem -out server-req.csr

# 生成服務(wù)端證書
openssl x509 -req -days 3650 -in server-req.csr -CA ca-cert.pem -CAkey ca.pem -passin "pass:$PASSWORD" -CAcreateserial -out server-cert.pem

# 生成客戶端密鑰
openssl genrsa -out key.pem 2048

# 生成客戶端證書簽名的請求文件
openssl req -subj '/CN=client' -new -key key.pem -out client-req.csr

# 生成客戶端證書
sh -c 'echo "extendedKeyUsage=clientAuth" >> extfile.cnf'
openssl x509 -req -days 3650 -in client-req.csr -CA ca-cert.pem -CAkey ca.pem  -passin "pass:$PASSWORD" -CAcreateserial -out cert.pem -extfile extfile.cnf

# 更改密鑰權(quán)限
chmod 0400 ca.pem server-key.pem key.pem
# 更改證書權(quán)限
chmod 0444 ca-cert.pem server-cert.pem cert.pem
# 刪除無用文件
rm ca-cert.srl client-req.csr server-req.csr extfile.cnf

加入腳本命令保存

  • 賦予執(zhí)行權(quán)限
chmod +x auto-cert.sh
  • 執(zhí)行
./auto-cert.sh
  • 生成的文件說明
ca.srl:CA簽發(fā)證書的序列號記錄文件
ca-key.pem:CA密鑰
ca.pem:CA證書

server-req.csr:服務(wù)端證書簽名請求文件
server-key.pem:服務(wù)端密鑰
server-cert.pem:服務(wù)端證書

client-req.csr:客戶端證書簽名請求文件
extfile.cnf:客戶端證書擴展配置文件
key.pem:客戶端密鑰
cert.pem:客戶端證書
  • 另外還可以采用交互式shell腳本生成證書(上述兩種方式任選其一),腳本如下:
#!/bin/bash 
if [ -z $1 ];then
echo '請輸入服務(wù)器ip'
exit 0
fi
HOST=$1
# 創(chuàng)建證書存放目錄
mkdir -p /mydata/cert/docker
cd /mydata/cert/docker

# 生成CA密鑰
openssl genrsa -aes256 -out ca-key.pem 4096
# 生成CA證書
openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem

# 生成服務(wù)端密鑰
openssl genrsa -out server-key.pem 4096
# 生成服務(wù)端證書簽名的請求文件
openssl req -subj "/CN=$HOST" -sha256 -new -key server-key.pem -out server.csr
# 配置白名單,推薦配置0.0.0.0,允許所有IP連接但只有證書才可以連接成功
echo subjectAltName = DNS:$HOST,IP:$HOST,IP:0.0.0.0,IP:127.0.0.1 > extfile.cnf
# 生成服務(wù)端證書
openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -extfile extfile.cnf

# 生成客戶端密鑰
openssl genrsa -out key.pem 4096
# 生成客戶端證書簽名的請求文件
openssl req -subj '/CN=client' -new -key key.pem -out client.csr
echo extendedKeyUsage = clientAuth > extfile.cnf
# 生成客戶端證書
openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem -extfile extfile.cnf

# 更改密鑰權(quán)限
chmod -v 0400 ca-key.pem key.pem server-key.pem
# 更改證書權(quán)限
chmod -v 0444 ca.pem server-cert.pem cert.pem

# 刪除無用文件
rm -v client.csr server.csr

3.2 配置TLS

# 編輯文件(有的在這個位置:/usr/lib/systemd/system/docker.service)
vim /etc/systemd/system/docker.service

# 修改內(nèi)容,注意證書的指定位置
ExecStart=/usr/bin/dockerd \
--tlsverify \
--tlscacert=/mydata/cert/docker/ca-cert.pem \
--tlscert=/mydata/cert/docker/server-cert.pem \
--tlskey=/mydata/cert/docker/server-key.pem \
-H unix:///var/run/docker.sock \
-H tcp://0.0.0.0:2375

# 重啟服務(wù)
systemctl daemon-reload && systemctl restart docker

/etc/systemd/system/docker.service 和 /usr/lib/systemd/system/docker.service 都是 Docker 服務(wù)的 systemd 單元文件,但它們的作用和使用方式略有不同:

/etc/systemd/system/docker.service:

  • 這個路徑下的文件是系統(tǒng)管理員或用戶自定義的 systemd 單元文件,通常用于覆蓋默認的 Docker 服務(wù)配置。
  • 系統(tǒng)管理員或用戶可以在此文件中定義自己的 Docker 服務(wù)配置,如修改默認的啟動參數(shù)、環(huán)境變量等。
  • 當存在 /etc/systemd/system/docker.service 文件時,系統(tǒng)會優(yōu)先使用該文件中定義的配置啟動 Docker 服務(wù),而不是使用默認的 /usr/lib/systemd/system/docker.service 文件。
  • 這種方式允許用戶在不修改系統(tǒng)提供的默認配置的情況下,自定義 Docker 服務(wù)的行為。

/usr/lib/systemd/system/docker.service:

  • 這個路徑下的文件是 Docker 軟件包提供的默認 systemd 單元文件,用于定義 Docker 服務(wù)的啟動參數(shù)、環(huán)境變量等默認配置。
  • 這個文件通常由 Docker 軟件包安裝程序提供,并且在安裝 Docker 軟件包時會自動創(chuàng)建。
  • 如果系統(tǒng)中不存在 /etc/systemd/system/docker.service 文件,那么 Docker 服務(wù)會使用這個默認的 systemd 單元文件進行啟動。
  • 一般情況下,不建議直接修改這個文件,因為它可能會在 Docker 軟件包的升級過程中被覆蓋或修改。

總體來說,/etc/systemd/system/docker.service 文件用于用戶自定義 Docker 服務(wù)的配置,而 /usr/lib/systemd/system/docker.service 文件是 Docker 軟件包提供的默認配置文件。

4. 參考和感謝

Docker開啟TLS和CA認證, 解決暴露2375端口引發(fā)的安全漏洞, 并使用idea連接并推送鏡像

Docker開啟TLS和CA認證

到此這篇關(guān)于Docker實現(xiàn)TLS和CA認證的方法步驟的文章就介紹到這了,更多相關(guān)Docker TLS和CA認證內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • 利用Docker部署PostgreSQL 12.4主從方式

    利用Docker部署PostgreSQL 12.4主從方式

    這篇文章主要介紹了利用Docker部署PostgreSQL 12.4主從方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Ceph集群Docker容器化部署過程

    Ceph集群Docker容器化部署過程

    這篇文章主要介紹了Ceph集群Docker容器化部署過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 在Mac OS X安裝Docker教程

    在Mac OS X安裝Docker教程

    本篇文章主要介紹了在OS X安裝Docker教程,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • 使用 Docker 部署 GitLab 并持久化數(shù)據(jù)的實例步驟

    使用 Docker 部署 GitLab 并持久化數(shù)據(jù)的實例步驟

    本文將詳細介紹如何使用 Docker 部署 GitLab,并將數(shù)據(jù)(如倉庫、配置、日志等)持久化到主機磁盤,我們還將解決常見的端口沖突問題,并介紹如何從另一臺 GitLab 恢復(fù)數(shù)據(jù)到新的 GitLab 實例,感興趣的朋友一起看看吧
    2025-05-05
  • Docker?安裝Tomcat、實現(xiàn)Tomcat集群的詳細過程

    Docker?安裝Tomcat、實現(xiàn)Tomcat集群的詳細過程

    這篇文章主要介紹了Docker安裝Tomcat、實現(xiàn)Tomcat集群,本文給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-06-06
  • 基于docker nginx配置圖片資源服務(wù)器

    基于docker nginx配置圖片資源服務(wù)器

    本文主要介紹了基于docker nginx配置圖片資源服務(wù)器,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2025-09-09
  • Docker配置代理的詳細步驟記錄

    Docker配置代理的詳細步驟記錄

    docker是一個流行的容器化平臺,它讓應(yīng)用程序可以在操作系統(tǒng)層面上隔離運行,從而提供了更高的可移植性和可靠性,這篇文章主要給大家介紹了關(guān)于Docker配置代理的詳細步驟,需要的朋友可以參考下
    2024-08-08
  • LINUX中Docker?Swarm的介紹和詳細使用教程

    LINUX中Docker?Swarm的介紹和詳細使用教程

    Docker?Swarm是Docker的集群管理工具,將多個節(jié)點統(tǒng)一管理,支持服務(wù)部署、擴縮容與滾動更新,適用于高可用分布式應(yīng)用,本文給大家介紹LINUX中Docker?Swarm的介紹和詳細使用教程,感興趣的朋友一起看看吧
    2025-09-09
  • 使用Golang玩轉(zhuǎn)Docker API的實踐

    使用Golang玩轉(zhuǎn)Docker API的實踐

    這篇文章主要介紹了使用Golang玩轉(zhuǎn)Docker API的實踐,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2021-04-04
  • docker部署項目/var/lib/docker/overlay2目錄滿了該如何清理

    docker部署項目/var/lib/docker/overlay2目錄滿了該如何清理

    Docker中的/var/lib/docker/overlay2目錄是用于存儲Docker容器的數(shù)據(jù)層和鏡像層的,使用Docker一段時間后這個目錄可能會變得非常大,這篇文章主要給大家介紹了關(guān)于docker部署項目/var/lib/docker/overlay2目錄滿了該如何清理的相關(guān)資料,需要的朋友可以參考下
    2024-04-04

最新評論

晋州市| 尼玛县| 贵德县| 油尖旺区| 鄂托克旗| 清水河县| 古浪县| 房产| 崇礼县| 新丰县| 华阴市| 三台县| 保定市| 方城县| 桐乡市| 兰坪| 宜宾市| 额尔古纳市| 墨竹工卡县| 呼伦贝尔市| 化州市| 改则县| 门头沟区| 会同县| 镇康县| 阿克陶县| 富民县| 海晏县| 毕节市| 长白| 嘉峪关市| 安义县| 叙永县| 渭南市| 钟祥市| 乌鲁木齐县| 大足县| 册亨县| 金寨县| 获嘉县| 康平县|