Linux instala la ventana acoplable e implementa la idea de usar el certificado para cifrar la conexión

1. Preparación ambiental

  1. 1 servidor en la nube Ali
  2. centos7.9
  3. última versión de la ventana acoplable

2. Pasos de instalación de Docker

Configurar almacén

  1. Instale los paquetes necesarios. yum-utils proporciona yum-config-manager, y el controlador de almacenamiento del mapeador de dispositivos requiere device-mapper-persistent-data y lvm2.
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  1. Configurar el origen de la nube de Alibaba
sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

Instale la última versión de Docker Engine-Community y containerd

sudo yum install docker-ce docker-ce-cli containerd.io

iniciar ventana acoplable

sudo systemctl start docker

Configurar la aceleración de imágenes de Docker

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io

reiniciar ventana acoplable

sudo systemctl daemon-reload
sudo systemctl restart docker

3. Configurar el certificado

Crear un directorio para almacenar certificados

mkdir -p /usr/local/ca
cd /usr/local/ca

Cree un script de generación de certificados con un solo clic

vi ca.sh

Presione el botón A para cambiar al modo de entrada y luego pegue el siguiente código

#!/bin/bash
SERVER="服务器外网ip"
PASSWORD="yinfeng"
COUNTRY="CN"
STATE="shanghai"
CITY="shanghai"
ORGANIZATION="yinfeng"
ORGANIZATIONAL_UNIT="dev"
EMAIL="[email protected]"

echo "starting..."
cd /usr/local/ca
openssl genrsa -aes256 -passout pass:$PASSWORD  -out ca-key.pem 4096
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"
openssl genrsa -out server-key.pem 4096
openssl req -subj "/CN=$SERVER" -new -key server-key.pem -out server.csr
sh -c  'echo "subjectAltName = IP:'$SERVER',IP:0.0.0.0" >> extfile.cnf'
sh -c  'echo "extendedKeyUsage = serverAuth" >> extfile.cn'
sh -c  'echo "extendedKeyUsage = serverAuth" >> extfile.cnf'
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
openssl genrsa -out key.pem 4096
openssl req -subj "/CN=client" -new -key key.pem -out client.csr
sh -c 'echo extendedKeyUsage=clientAuth >> extfile-client.cnf'
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
rm client.csr server.csr
cp server-*.pem  /etc/docker/
cp ca.pem /etc/docker/
echo "========end========"

Ejecutar después de guardar el script

sh ca.sh

Una vez completada la ejecución, se generarán los siguientes archivos.Después de buscar durante mucho tiempo, resumo los únicos scripts disponibles en toda la red.
generación de certificados

Modificar la configuración de Docker

  1. Haga que el demonio Docker solo acepte enlaces de clientes que proporcionen certificados en los que confía la CA
vim /lib/systemd/system/docker.service
  1. Reemplace el valor de la propiedad ExecStart
ExecStart=/usr/bin/dockerd --tlsverify --tlscacert=/usr/local/ca/ca.pem --tlscert=/usr/local/ca/server-cert.pem --tlskey=/usr/local/ca/server-key.pem -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

inserte la descripción de la imagen aquí

Vuelva a cargar el servicio y reinicie la ventana acoplable

systemctl daemon-reload && systemctl restart docker

Guarde el archivo del cliente del certificado en el local

Estoy usando sz, si no lo tienes, primero debes instalarlo

yum -y install lrzsz

Ejecutar después de una instalación exitosa

sz ca.pem cert.pem key.pem

Los guardo directamente en el escritorio.
inserte la descripción de la imagen aquí

Pruebe si el certificado se configuró correctamente. Si tiene éxito, se mostrará la información relacionada con el certificado. Si hay una falla, verifique el proceso de generación del certificado.

docker --tlsverify --tlscacert=ca.pem --tlscert=cert.pem --tlskey=key.pem -H=服务器外网ip:2375 version

inserte la descripción de la imagen aquí

Finalmente probarlo en la idea

  1. Mueva el certificado que acaba de descargar al directorio de certificados de nuestra computadora
    inserte la descripción de la imagen aquí

  2. Antes de vincular, debe abrir el puerto 2375 de Alibaba Cloud; de lo contrario, Alibaba Cloud lo bloqueará
    inserte la descripción de la imagen aquí

  3. Vinculando a través del complemento docker de idea, puede ver que el enlace ha sido exitoso
    inserte la descripción de la imagen aquí

  4. Estamos probando si el enlace a través de tcp aún se puede vincular con éxito
    inserte la descripción de la imagen aquí

4. Resumen

Finalmente, para resumir, al configurar el enlace de red externo de docker para su propio servicio, debe tener buenas medidas de cifrado, de lo contrario, es fácil colgar el caballo.En la actualidad, los pasos en Internet generalmente son solo enlaces tcp sin contraseña. , que son muy inseguros. Se escaneó y colgó en media hora, así que decidí escribir una nota para registrar mi proceso de implementación. Espero que todos puedan aprender de ella.
Esta es la información de alarma de Alibaba Cloud
inserte la descripción de la imagen aquí

Cuando tenga tiempo, escribiré otro artículo sobre la idea del cifrado con un solo clic para implementar Springboot en el contenedor de la ventana acoplable . No es fácil escribir un artículo. Por favor, dale a Me gusta y gracias por tu apoyo.

Supongo que te gusta

Origin blog.csdn.net/a1774381324/article/details/121883046
Recomendado
Clasificación