Вы можете создавать сертификаты вручную, используя инструмент OpenSSL, и настраивать демон Docker для использования этих сертификатов.
Создание сертификатов сервера
Создание секретных и открытых ключей CA:
openssl genrsa -aes256 -out ca-key.pem 4096
openssl req -new -x509 -days 1000 -key ca-key.pem -sha256 -out ca.pem
Создание ключа сервера и запроса на подпись сертификата (CSR):
openssl genrsa -out server-key.pem 4096
openssl req -subj "/CN=my.company.com" -sha256 -new -key server-key.pem -out server.csr
Подписать открытый ключ с помощью CA:
echo subjectAltName = DNS:my.company.com,IP:127.0.0.1 >> extfile.cnf
echo extendedKeyUsage = serverAuth >> extfile.cnf
Генерация ключа:
openssl x509 -req -days 1000 -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 1000 -sha256 -in client.csr -CA ../server/ca.pem -CAkey ../server/ca-key.pem -CAcreateserial -out cert.pem -extfile extfile.cnf
- Экспорт cert.pem в формат PFX для добавления в доверенные корневые центры сертификации
openssl pkcs12 -export -in cert.pem -inkey key.pem -out cert.pfx
Настройка демона Docker с помощью /etc/docker/daemon.json
{
"debug": false,
"tls": true,
"tlsverify": true,
"tlscacert": "/etc/docker/certificates/server/ca.pem",
"tlscert": "/etc/docker/certificates/server/server-cert.pem",
"tlskey": "/etc/docker/certificates/server/server-key.pem",
"hosts": ["tcp://0.0.0.0:2376", "unix:///var/run/docker.sock"]
}
Запустить Docker Service
systemctl start docker
Ознакомьтесь с этой статьей Строительство трубопроводов Jenkins - Часть 1. Настройка Docker Swarm от Scalified.
Содержит пошаговое руководство по настройке Docker Swarm и созданию самозаверяющих сертификатов сервера и клиента. Я надеюсь, что это поможет решить вашу проблему.