远程docker服务器携带证书连接的实现方法

目录
  • 1、用脚本给docker进行tls加密
  • 2、修改docker配置,开启远程访问
  • 3、使用idea测试连接

在开始远程连接docker服务器之前,我们需要确保远程服务器上已经安装好了docker,并且docker已经在服务器上正常运行,接下来完成idea携带证书远程连接docker的步骤。

1、用脚本给docker进行tls加密

下面的脚本引用于《docker remote api一键TLS加密》,接下来用这个脚本完成加密证书文件的生成。

在/root目录下创建加密脚本:vi create_verify.sh。

注意脚本中“x.x.x.x”处填入自己服务器的公网ip。

#!/bin/bash
mkdir -p /root/tls/pem
#DOMAIN_HOST=`ifconfig eth0 | grep "inet" | awk '{ print $2}' | sed -n '1p;1q'`
DOMAIN_HOST=`hostname`
HOST=$DOMAIN_HOST
# 自定义信息
PASSWORD="HeDongHudj"
COUNTRY=CN
PROVINCE=gd
CITY=gz
ORGANIZATION=dounine
GROUP=dg
NAME=lake
SUBJ="/C=$COUNTRY/ST=$PROVINCE/L=$CITY/O=$ORGANIZATION/OU=$GROUP/CN=$HOST"
# 自定义信息
#============================================================================================
#此形式是自己给自己签发证书,自己就是CA机构,也可以交给第三方机构去签发
openssl genrsa -passout pass:$PASSWORD -aes256 -out /root/tls/pem/ca-key.pem 4096
# 2.用根证书RSA私钥生成自签名的根证书(营业执照)
openssl req -new -x509 -days 365 -passin pass:$PASSWORD -key /root/tls/pem/ca-key.pem -sha256 -subj $SUBJ -out /root/tls/pem/ca.pem
#============================================================================================
#给服务器签发证书
# 1.服务端生成自己的私钥
openssl genrsa -out /root/tls/pem/server-key.pem 4096
# 2.服务端生成证书(里面包含公钥与服务端信息)
openssl req -new -sha256 -key /root/tls/pem/server-key.pem -out /root/tls/pem/server.csr -subj "/CN=$DOMAIN_HOST"
# 3.通过什么形式与我进行连接,可设置多个IP地扯用逗号分隔
echo subjectAltName=IP:x.x.x.x,IP:0.0.0.0 > /tmp/extfile.cnf
# 4.权威机构对证书进行进行盖章生效
openssl x509 -passin pass:$PASSWORD -req -days 365 -sha256 -in /root/tls/pem/server.csr -CA /root/tls/pem/ca.pem -CAkey /root/tls/pem/ca-key.pem -CAcreateserial -out /root/tls/pem/server-cert.pem -extfile /tmp/extfile.cnf
#============================================================================================
#给客户端签发证书
openssl genrsa -out /root/tls/pem/client-key.pem 4096
openssl req -subj '/CN=client' -new -key /root/tls/pem/client-key.pem -out /root/tls/pem/client.csr
echo extendedKeyUsage = clientAuth > /tmp/extfile.cnf
openssl x509 -passin pass:$PASSWORD -req -days 365 -sha256 -in /root/tls/pem/client.csr -CA /root/tls/pem/ca.pem -CAkey /root/tls/pem/ca-key.pem -CAcreateserial -out /root/tls/pem/client-cert.pem -extfile /tmp/extfile.cnf
#============================================================================================
# 清理文件
rm -rf /root/tls/pem/ca-key.pem
rm -rf /root/tls/pem/{server,client}.csr
rm -rf /root/tls/pem/ca.srl
# 最终文件
# ca.pem  ==  CA机构证书
# client-cert.pem  ==  客户端证书
# client-key.pem  ==  客户私钥
# server-cert.pem  == 服务端证书
# server-key.pem  ==  服务端私钥

脚本创建完成后执行脚本:sh create_verify.sh

执行该shell脚本后,会在/root/tls/pem目录下生成ca.pem、client-cert.pem、client-key.pem 、server-cert.pem、server-key.pem证书文件

接下来将ca.pem、client-cert.pem、client-key.pem三个文件拷贝到本地任意目录下,并将client-cert.pem、client-key.pem分别重命名为cert.pem和key.pem,记住这个目录后面会用到。

2、修改docker配置,开启远程访问

$ vi /usr/lib/systemd/system/docker.service

找到对应的ExecStart开头的行,修改为如下内容,引入刚才的证书信息,并且我使用的2376端口进行连接,如果服务器是阿里云或者腾讯云需要在防火墙中开放此端口。

重启docker:

$ systemctl daemon-reload
$ systemctl restart docker

3、使用idea测试连接

在idea上安装docker插件,这个步骤不在赘述,然后如图填写相关信息,这个证书信息就是刚才我们从服务器上拷贝下来的三个文件,选中刚才存放的目录即可,看到下方提示则代表连接成功!

远程连接docker服务器成功之后,我们才能将自己的项目做成镜像部署在服务器k8s中。

到此这篇关于远程docker服务器携带证书连接的实现方法的文章就介绍到这了,更多相关docker远程连接证书内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • IDEA连接远程服务器Docker部署Spring Boot项目的详细教程

    开始前的准备工作 拥有一台云服务器,我的是腾讯云服务器(CentOS7) 腾讯云服务器安装Docker,我的版本是Docker 19.03.9,关于安装和配置镜像加速器可以查阅我的另一篇博文:https://www.jb51.net/article/188048.htm,其中有详细的讲解 Windows上有安装IDEA 正式开始工作 第一步:配置Docker,开启远程访问(注:仅供学习参考,实际生产环境万万不可,会产生很大的安全风险),默认端口是2375,也可以修改为其他端口 1.修改/lib/

  • Docker 安装 MySQL 并实现远程连接教程

    拉取镜像 docker pull mysql 查看拉取完成的镜像 docker images 通过镜像创建并启动一个MySQL容器 docker run --name mysql_dev -e MYSQL_ROOT_PASSWORD=123456 -p 3333:3306 -d mysql –name:给新创建的容器命名,此处命名为 mysql_dev -e:配置信息,此处配置mysql的root用户的登陆密码 -p:端口映射,此处映射主机3333端口到容器mysql_dev的3306端口 -d

  • docker部署mysql 实现远程连接的示例代码

    1.docker search mysql   查看mysql版本 2.docker pull mysql  要选择starts最高的那个name 进行下载 3.docker images  查看下载好的镜像 4.启动mysql实例 docker run --name dockermysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql  --name 为mysql的实例设置别名. -p 3307为对外暴露的端口.3306是内

  • Docker部署mysql远程连接 解决2003的问题

    连接MySQL 这里我使用navicat远程连接,连接MySQL前需要防火墙开放端口或者关闭防火墙. 开放端口 firewall-cmd --add-port=3306/tcp --permanent // --permanent 永久生效,没有此参数重启后失效 firewall-cmd --reload // 重新载入 关闭防火墙 systemctl stop firewalld systemctl enable iptables // 设置开机启动 firewall-cmd --reload

  • docker daemon远程连接设置详解

    Docker为C/S架构,服务端为docker daemon,客户端为docker.service.支持本地unix socket域套接字通信与远程socket通信.默认为本地unix socket通信,要支持远程客户端访问需要做如下设置(仅用于测试,生产环境开启会极大增加不安全性:由于开了监听端口,任何人可以通过远程连接到docker daemon服务器进行操作): 1.设置daemon监听连接: 添加本地默认监听端口,模式为IP:port Ubuntu: 修改daemon配置:/etc/do

  • 使用portainer连接远程docker的教程

    Portainer是一个轻量级的docker环境管理UI,可以用来管理docker宿主机和docker swarm集群.他的轻量级,轻量到只要个不到100M的docker镜像容器就可以完整的提供服务 Portainer的Hub地址是:https://hub.docker.com/r/portainer/portainer/ 运行命令是: docker run -it --restart=always -d --name portainer-docker -p 9000:9000 --privil

  • 远程docker服务器携带证书连接的实现方法

    目录 1.用脚本给docker进行tls加密 2.修改docker配置,开启远程访问 3.使用idea测试连接 在开始远程连接docker服务器之前,我们需要确保远程服务器上已经安装好了docker,并且docker已经在服务器上正常运行,接下来完成idea携带证书远程连接docker的步骤. 1.用脚本给docker进行tls加密 下面的脚本引用于<docker remote api一键TLS加密>,接下来用这个脚本完成加密证书文件的生成. 在/root目录下创建加密脚本:vi create

  • 本地电脑向远程windows服务器传输文件的三种方法汇总

    目录 1.直接复制粘贴 2.Windows远程连接 windows+R,输入mstsc 点击“选项”按钮,打开远程连接选项卡 选择本地资源,点击详细信息 打开驱动器,选择你要共享的盘符 文件管理器 3.FileZilla 的使用 这篇文章主要介绍了本地电脑向windows服务器传输文件的三种方法汇总(本地电脑与远程windows服务器传输文件的方式)的相关资料,需要的朋友可以参考下 那么如何将我们本机的文件传送到云主机上呢? 1.直接复制粘贴 通过远程连接到这个服务器,然后本机到服务器能直接粘贴

  • 打包docker镜像推送到远程服务器并部署到k8s的方法步骤

    目录 1.Dockerfile 2.pom配置 3.镜像推送 4.k8s部署 前提条件: 1.docker服务器已开启远程访问,参考<远程docker服务器携带证书连接>. 2.服务器上已经搭建好k8s集群,本文是k8s单点集群用于测试. 在之前的文章中我们已经通过idea的docker插件测试了远程docker服务器已经能够正常访问,虽然利用这个docker插件也可以完成docker镜像的打包及推送,但本文我们将换一种方式,使用maven的docker-maven-plugin插件完成doc

  • mysql安装navicat之后,出现2059,Authentication plugin及本地链接虚拟机docker,远程链接服务器

    序言 在安装完MySql和navicat之后,进行连接时报出了ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded: ÕÒ²»µ½Ö¸¶¨µÄÄ£¿é¡£.我起初认为是我没设置密码的原因.便在命令行模式下设置了密码值得一提的是在登陆root之后 设置密码应该是 set password ='你的密码' 而不是 什么password =password 什么的,你看见让报错是syntax

  • 使用ssh连接docker服务器的方法

    我刚接触docker时,是真的懵,看了半天菜鸟教程也不会使,现在至少了解了docker是一个容器,里面可以放各种软件,放了ubuntu的话,这个容器就可以看做ubuntu在其他环境使用. 下载 就按照教程中的来,没啥好说的,放出菜鸟里的安装教程 https://www.runoob.com/docker/windows-docker-install.html 主要说一下怎么创建一个docker服务,让别人可以通过ssh来连接使用(以ubuntu为例) 创建容器 需要镜像,使用过ubuntu等镜像

  • pl/sql连接远程oracle服务器的配置教程

    本文为大家分享了pl/sql连接远程oracle服务器的配置教程,具体内容如下 方法1: 打开所有程序->找到oracle-oradb11g-home1->Net Configuration Assistant 本地网络服务名配置,点击下一步 选择添加,点击下一步 填写服务名(注数据库名),点击下一步 选择通信协议:TCP,下一步 填写数据库所在的主机名(也可以是IP地址),选择端口号(根据数据库所在的主机的端口号进行选择,一般是标准端口号),点击下一步,选择测试,点击下一步 ok,到此结束.

  • python连接远程ftp服务器并列出目录下文件的方法

    本文实例讲述了python连接远程ftp服务器并列出目录下文件的方法.分享给大家供大家参考.具体如下: 这段python代码用到了pysftp模块,使用sftp协议,对数据进行加密传输 import pysftp srv = pysftp.Connection(host="your_FTP_server", username="your_username",password="your_password") # Get the directory

  • linux通过跳板机连接远程服务器并进行文件传输的方法

    最近在linux主机上部署环境时,遇到了很多问题,第一个就是通过跳板机远程连接服务器传输文件的问题. 看了很多网上的解决办法,大部分就是说用SecureCRT软件的Alt+P命令,然后通过SFTP进行传输,其中主要涉及以下几个指令 在sftp界面下有几个命令比较重要 cd 主要是打开服务器存放文件的位置 lcd 主要是打开本地待上传文件的位置 put 是上传文件的指令 get 是从服务器下载文件的指令 在sftp界面下有几个命令比较重要 cd 主要是打开服务器存放文件的位置 lcd 主要是打开本

  • 详解pycharm连接远程linux服务器的虚拟环境的方法

    一.前提条件 1.确保linux服务器已经安装好虚拟环境,并且虚拟环境已经python的相关环境(连接服务器也可以进行环境配置). 2.通过Xsheel激活虚拟环境然后通过pip安装相关的包,当然也可以通过pycharm的terminal进行相关库 安装. 二.连接服务器 1.进入pycharm的Tools栏 2.选择文件传输协议为SFTP,输入服务器的IP.端口.密码进行连接,不出意外的情况下应该是能够连接成功的. 3.选择本地和服务器的文件路径 三.采用服务器的解释器 1.file-seti

随机推荐