Заменить просроченный сертификат для сокета демона докеров
Срок действия нашего сертификата TCP docker sock, расположенного на порту 9001, истек.
В документации здесь объясняется, как защитить сокет демона докеров путем создания сертификата CA: https://docs.docker.com/engine/security/https/
Однако в документации не объясняется, как заменить сертификат с истекшим сроком действия. У меня есть недавно созданные сертификаты hostname.crt, hostname.csr и hostname.jks. Как отсоединить сертификат с истекшим сроком действия от сокета докера и прикрепить новый сертификат? Я хотел бы настроить его на использование только соединения TLS 1_2.
Я попытался выполнить указанные выше шаги для создания файлов ca.pem, cert.pem и key.pem с использованием моего файла hostname.csr, но я столкнулся с этой ошибкой:
$ dockerd --tlsverify --tlscacert=ca.pem --tlscert=server-cert.pem --tlskey=server-key.pem -H=0.0.0.0:2377
listen tcp 0.0.0.0:2377: bind: address already in use
$ docker --tlsverify --tlscacert=ca.pem --tlscert=cert.pem --tlskey=key.pem -H=cstmditlvlnx54.dev.local:2377 version
Client:
Version: 17.09.0-ce
API version: 1.32
Go version: go1.8.3
Git commit: afdb6d4
Built: Tue Sep 26 22:41:23 2017
OS/Arch: linux/amd64
error during connect: Get https://<hostname>:2377/v1.32/version: x509: certificate is valid for swarm-manager, dbacsvpspwkeimy9cr8fe2uqd, swarm-ca, not <hostname>
$ sudo docker info
Containers: 48
Running: 0
Paused: 0
Stopped: 48
Images: 33
Server Version: 17.09.0-ce
Storage Driver: overlay
Backing Filesystem: xfs
Supports d_type: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: active
NodeID: dbacsvpspwkeimy9cr8fe2uqd
Is Manager: true
ClusterID: p8pp1gurblaoendeanjc04lv6
Managers: 1
Nodes: 3
Orchestration:
Task History Retention Limit: 5
Raft:
Snapshot Interval: 10000
Number of Old Snapshots to Retain: 0
Heartbeat Tick: 1
Election Tick: 3
Dispatcher:
Heartbeat Period: 5 seconds
CA Configuration:
Expiry Duration: 4 weeks
Force Rotate: 3
Autolock Managers: false
Root Rotation In Progress: false
Node Address: ######
Manager Addresses:
#######:2377
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 06b9cb35161009dcb7123345749fef02f7cea8e0
runc version: 3f2f8b84a77f73d38244dd690525642a72156c64
init version: 949e6fa
Security Options:
seccomp
Profile: default
Kernel Version: 3.10.0-1127.8.2.el7.x86_64
Operating System: Red Hat Enterprise Linux Server 7.8 (Maipo)
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 7.777GiB
Name: <hostname>
ID: RCPU:PSF5:DJ7D:JECW:X7CF:GWP6:52QE:K7LR:OASA:7LQX:SPX6:QIFX
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
<url>:9091
<url>:9092
cstmdevlvrpo51:9091
127.0.0.0/8
Live Restore Enabled: false