By default, Docker runs over a non-networked UNIX socket. It can also use HTTP sockets for optional communication. # Create CA certificate directory [root@localhost ~]# mkdir tls [root@localhost ~]# cd tls/ # Create CA key [root@localhost tls]# openssl genrsa -aes256 -out ca-key.pem 4096 Generating RSA private key, 4096 bit long modulus ..............................................................................++ .....................................................................................................................................................................................++ e is 65537 (0x10001) Enter pass phrase for ca-key.pem: Verifying - Enter pass phrase for ca-key.pem: # Create CA certificate [root@localhost tls]# openssl req -new -x509 -days 1000 -key ca-key.pem -sha256 -subj "/CN=*" -out ca.pem Enter pass phrase for ca-key.pem: [root@localhost tls]# ll Total dosage 8 -rw-r--r--. 1 root root 3326 12月3 17:20 ca-key.pem -rw-r--r--. 1 root root 1765 Dec 3 19:03 ca.pem # Create server private key [root@localhost tls]# openssl genrsa -out server-key.pem 4096 Generating RSA private key, 4096 bit long modulus ................................................................++ ..................++ e is 65537 (0x10001) [root@localhost tls]# ll Total dosage 12 -rw-r--r--. 1 root root 3326 12月3 17:20 ca-key.pem -rw-r--r--. 1 root root 1765 Dec 3 19:03 ca.pem -rw-r--r--. 1 root root 3243 12月3 19:03 server-key.pem # Sign the private key [root@localhost tls]# openssl req -subj "/CN=*" -sha256 -new -key server-key.pem -out server.csr [root@localhost tls]# ll Total dosage 16 -rw-r--r--. 1 root root 3326 12月3 17:20 ca-key.pem -rw-r--r--. 1 root root 1765 Dec 3 19:03 ca.pem -rw-r--r--. 1 root root 1574 12月3 19:04 server.csr -rw-r--r--. 1 root root 3243 12月3 19:03 server-key.pem Sign with CA certificate and private key, enter the password set above [root@localhost tls]# openssl x509 -req -days 1000 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem Signature ok subject=/CN=* Getting CA Private Key Enter pass phrase for ca-key.pem: #Generate client key [root@localhost tls]# openssl genrsa -out key.pem 4096 Generating RSA private key, 4096 bit long modulus ....................................................................................................................................++ .................................++ e is 65537 (0x10001) #Sign the client [root@localhost tls]# openssl req -subj "/CN=client" -new -key key.pem -out client.csr #Create configuration file [root@localhost tls]# echo extendedKeyUsage=clientAuth > extfile.cnf #Sign certificate [root@localhost tls]# openssl x509 -req -days 1000 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem -extfile extfile.cnf Signature ok subject=/CN=client Getting CA Private Key Enter pass phrase for ca-key.pem: [root@localhost tls]# ll Total dosage 40 -rw-r--r--. 1 root root 3326 12月3 17:20 ca-key.pem -rw-r--r--. 1 root root 1765 Dec 3 19:03 ca.pem -rw-r--r--. 1 root root 17 December 3 19:35 ca.srl -rw-r--r--. 1 root root 1696 Dec 3 19:35 cert.pem -rw-r--r--. 1 root root 1582 December 3 19:29 client.csr -rw-r--r--. 1 root root 28 12月3 19:32 extfile.cnf -rw-r--r--. 1 root root 3243 December 3 19:08 key.pem -rw-r--r--. 1 root root 1647 Dec 3 19:08 server-cert.pem -rw-r--r--. 1 root root 1574 12月3 19:04 server.csr -rw-r--r--. 1 root root 3243 12月3 19:03 server-key.pem # Delete unnecessary files [root@localhost tls]# Testing on the client [root@client ~]# docker --tlsverify --tlscacert=ca.pem --tlscert=cert.pem --tlskey=key.pem -H tcp://master:2376 version Client: Docker Engine - Community Version: 19.03.13 API version: 1.40 Go version: go1.13.15 Git commit: 4484c46d9d Built: Wed Sep 16 17:03:45 2020 OS/Arch: linux/amd64 Experimental: false Server: Docker Engine - Community Engine: Version: 19.03.13 API version: 1.40 (minimum version 1.12) Go version: go1.13.15 Git commit: 4484c46d9d Built: Wed Sep 16 17:02:21 2020 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.3.9 GitCommit: ea765aba0d05254012b0b9e595e995c09186427f runc: Version: 1.0.0-rc10 GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd docker-init: Version: 0.18.0 GitCommit: fec3683 This concludes this article about using TLS encrypted communication to remotely connect to Docker. For more information about TLS encrypted remote connection to Docker, please search for previous articles on 123WORDPRESS.COM or continue to browse the following related articles. I hope you will support 123WORDPRESS.COM in the future! You may also be interested in:
|
<<: HTML table tag tutorial (26): cell tag
>>: How to forget the root password in Mysql8.0.13 under Windows 10 system
background As the business develops, the company&...
Today I learned to install MySQL, and some proble...
After installing VMware and creating a new virtua...
Related articles: Beginners learn some HTML tags ...
As a popular open source database management syst...
Install Follow the README to install The document...
Table of contents 1. Limit props to type lists 2....
Step 1: yum install httpd -y #Install httpd servi...
Style Sheets CSS (Cascading Style Sheets) is used...
Table of contents Docker-Maven-Plugin Maven plugi...
Table of contents 1. New usage of watch 1.1. Watc...
Table of contents frame First-class error reporti...
Table of contents Multiple uses of MySQL Load Dat...
Table of contents 1. Definition and Use 1.1 Defin...
The MySQL version used in this example is mysql-8...