【docker系列】docker API管理接口增加CA安全认证

这篇具有很好参考价值的文章主要介绍了【docker系列】docker API管理接口增加CA安全认证。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前文中我们曾经介绍过《使用IDEA远程工具》连接Docker REST API,我们会发现一个问题,任何知道Docker 服务器IP、端口的第三方都可以访问这个API,非常的不安全。为了保证Docker API的安全性,我们有必要使用数字证书进行安全验证。

  • 为docker服务端配置服务端证书,用于验证客户端请求
  • 为访问docker 服务的客户端配置客户端证书,用于验证服务端发送的交互信息的安全性。

如果只在自己公司内部使用到数字证书,就没有必要花钱向专业的CA机构进行认证授权(价格不菲),采用自生成的CA证书在公司内部使用也是完全可以的。下图是CA证书及子证书的签发过程,请结合文章进行理解。

【docker系列】docker API管理接口增加CA安全认证

一、模拟创建CA证书(中间边框的部分)

正常情况下CA机构有自己的私钥,因为我们是模拟CA机构,所以这个私钥需要我们自己创建。执行下文中的命令,输入2次密码(密码务必记住,后文中需要使用),执行完命令之后,当前目录下生成一个ca-key.pem文件(上图中红色背景代表)。

# 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:

该命令用于创建机构CA证书,执行该命令首先会提示输入密码(上文中设置的)。正常请开给你下,该流程是某公司向CA提机构提交自己公司的相关信息,CA授权机构根据这些信息(审核信息之后)生成一个用于该公司的CA证书(该公司范围的根证书)。

openssl req -new -x509 -days 3650 -key ca-key.pem -sha256 -out ca.pem

然后提示需要输入国家、省份、地市、公司、组织、服务器地址或域名、邮箱联系方式,其中国家和服务器地址或域名要填上,否则后续无法使用。

# 国家:CN
Country Name (2 letter code) [XX]: CN
# 省份: 可以不填,直接回车
State or Province Name (full name) []:
# 地市:可以不填,直接回车
Locality Name (eg, city) [Default City]:
# 公司: 可以不填,直接回车
Organization Name (eg, company) [Default Company Ltd]:
# 组织: 可以不填,直接回车
Organizational Unit Name (eg, section) []:
# 服务器地址或域名,按要求填写
Common Name (eg, your name or your server's hostname) []:  192.168.1.111
# 邮箱联系方式,可以不填,直接回车
Email Address []:

当前目录下生成一个ca.pem,该证书就是CA证书

二、签发服务器端证书(右边蓝色背景部分)

CA证书还可以用于签发子证书(数字证书),下面我们就模拟签发一个服务端证书。仍然需要先创建一个服务器端私钥server-key.pem

openssl genrsa -out server-key.pem 4096

创建服务器端CSRserver.csr,该文件作为向授权机构申请签发子证书的申请文件

openssl req -subj "/CN=192.168.1.111" -sha256 -new -key server-key.pem -out server.csr

模拟授权机构创建配置文件,serverAuth表示服务端证书

echo subjectAltName = IP:192.168.1.111,IP:0.0.0.0 >> extfile.cnf 
echo extendedKeyUsage = serverAuth >> extfile.cnf

创建服务器端证书会提示输入密码,输入上文中设置的密码即可。

openssl x509 -req -days 3650 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -extfile extfile.cnf

生成2个文件ca.srl、server-cert.pem,我们需要的是server-cert.pem作为服务端CA证书

三、签发客户端证书(左边黄色背景的部分)

下面我们就模拟签发一个客户端证书。仍然需要先创建一个客户端私钥key.pem

openssl genrsa -out key.pem 4096

创建客户端CSRclient.csr,该文件作为向授权机构申请签发子证书的申请文件

openssl req -subj '/CN=client' -new -key key.pem -out client.csr

模拟授权机构创建配置文件,clientAuth 表示客户端证书

echo extendedKeyUsage = clientAuth >> extfile.cnf

执行下列命令同样会提示输入密码,生成2个文件ca.srlcert.pem,我们需要的是cert.pem作为客户端证书

openssl x509 -req -days 3650 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem -extfile extfile.cnf

四、签发证书收尾工作

删除证书签发请求文件,已经失去用处。

rm -v client.csr server.csr

为上文中生成的各种证书授予文件访问权限。

chmod -v 0400 ca-key.pem key.pem server-key.pem;
chmod -v 0444 ca.pem server-cert.pem cert.pem;

查看CA证书有效期

# openssl x509 -in ca.pem -noout -dates
notBefore=Apr 10 01:17:55 2022 GMT
notAfter=Apr  7 01:17:55 2032 GMT

五、配置docker服务端

然后我们为docker服务端配置证书,分别是ca.pem、server-cert.pem、server-key.pem。将这三个文件放入/etc/docker/cert/目录下。

mkdir /etc/docker/cert/;
cp ./ca.pem ./server-cert.pem ./server-key.pem  /etc/docker/cert/;

修改vim /lib/systemd/system/docker.service文件中的ExecStart这一行,修改为如下的一段

ExecStart=/usr/bin/dockerd --tlsverify --tlscacert=/etc/docker/cert/ca.pem --tlscert=/etc/docker/cert/server-cert.pem --tlskey=/etc/docker/cert/server-key.pem -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

修改之后重启docker服务

#重启
systemctl daemon-reload && systemctl restart docker

六、IDEA配置使用客户端证书

我们在IDEA docker插件客户端证书配置处做如下选择:“File -> Settings -> Build、Execution、Deployment -> Docker”
【docker系列】docker API管理接口增加CA安全认证文章来源地址https://www.toymoban.com/news/detail-457707.html

  • Engine API URL的位置写https://<ip>:2375,记住是https,不是http,也不是tcp
  • 将客户端的需要的三个证书文件ca.pem、cert.pem、key.pem放入一个目录下,并使选择该目录作为Certificates folder。

到了这里,关于【docker系列】docker API管理接口增加CA安全认证的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ISO22000—食品安全管理体系认证

    很多企业对ISO还不了解,以下对ISO做了介绍,包括适用企业、认证目标、认证好处等信息,供参考。 ISO食品安全管理体系,ISO就是食品安全管理体系标准之一 。随着经济全球化的发展、社会文明程度的提高,人们越来越关注食品的安全问题;要求生产、操作和供应食品的组织

    2024年02月15日
    浏览(43)
  • 【Docker从入门到入土 6】Consul详解+Docker https安全认证(附证书申请方式)

    服务注册与发现是 微服务架构 中不可或缺的重要组件。 起初服务都是单节点的,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯的通过接口访问。 直到后来出现了多个节点的分布式架构,起初的解决手段是在服务前端负载均衡,这样前端必须要知道所有后端

    2024年02月02日
    浏览(33)
  • 宝塔docker管理器一键部署one-api接口分发管理系统开源源码

    注意:因为微信最近又改了推送机制,经常有朋友说错过了之前的搭建教程文章,每次都要主动搜索才能搜到公众号。所以建议大家加个星标,就能第一时间收到推送。 大家好啊,我是测评君,欢迎来到web测评,本期给大家分享一下怎么在宝塔使用docker管理器一键部署one-a

    2024年02月04日
    浏览(39)
  • CDH数仓项目(三) —— Kerberos安全认证和Sentry权限管理

    本文基于《CDH数仓项目(一) —— CDH安装部署搭建详细流程》和《CDH数仓项目(二) —— 用户行为数仓和业务数仓搭建》和搭建CDH数仓。本章节主要介绍基于CDH数仓的Kerberos认证和Sentry权限管理 Kerberos是一种计算机网络授权协议,用来在非安全网络中,对个人通信以安全的手段进

    2023年04月22日
    浏览(53)
  • NineData通过AWS FTR认证,打造安全可靠的数据管理平台

    近日,NineData 作为新一代的云原生智能数据管理平台,成功通过了 AWS(Amazon Web Service)的 FTR 认证。NineData 在 FTR 认证过程中表现出色,成功通过了各项严格的测试和评估,在数据安全管理、技术应用、流程规范等方面均达到 AWS 全球技术要求。 NineData 成功通过了AWS 的 FTR 认

    2024年02月12日
    浏览(43)
  • 深信服技术认证“SCSA-S”划重点:基线管理与安全配置

    为帮助大家更加系统化地学习网络安全知识,以及更高效地通过深信服安全服务认证工程师考核,深信服特别推出“SCSA-S认证备考秘笈”共十期内容, “考试重点”内容框架,帮助大家快速get重点知识~ 划重点来啦  *点击图片放大展示 深信服安全服务认证工程师(SCSA-S),

    2024年02月22日
    浏览(45)
  • Django基础7——用户认证系统、Session管理、CSRF安全防护机制

    Django内置一个用户认证系统,使用auth模块实现。 auth模块提供了登录、注册、效验、修改密码、注销、验证用户是否登录等功能。 Django默认创建的数据库表。 表名 作用 auth_user 用户表 auth_user_groups 用户所属组的表 auth_user_user_permissions 用户权限表 auth_group 用户组表 auth_group_

    2024年02月11日
    浏览(40)
  • 修改 Stable Diffusion 使 api 接口增加模型参数

     参考:https://zhuanlan.zhihu.com/p/644545784 1、修改 modules/api/models.py 中的 StableDiffusionTxt2ImgProcessingAPI 增加模型名称  2、修改 modules/api/api.py 中 text2imgapi 代码:  3、修改 modules/processing.py 中的 StableDiffusionProcessingTxt2Img ,增加模型名称接收

    2024年02月06日
    浏览(38)
  • 筑牢数据隐私安全底线,ADSCOPE通过ISO隐私信息管理体系认证!

    数字时代,信息安全尤其是数据隐私信息保护已经成为社会共识。 近日,ADSCOPE(上海倍孜网络技术有限公司)已通过相关组织机构评审,符合ISO/IEC 27701:2019标准,获得隐私信息管理体系认证证书 ,标志着ADSCOPE在信息安全及数据隐私保护能力方面达到了国际标准。 ISO/IEC

    2024年02月10日
    浏览(31)
  • ACL16_S 系列 低成本物联网安全芯片,可应用物联网认证、 SIM、防抄板和设备认证等产品上

    ACL16_S 芯片是针对物联网认证、 SIM、防抄板和设备认证需求推出的高安全芯片。芯片采用 32 位 ARMCortex™-M0 系列内核,片内集成多种安全密码模块,包括 RSA/ECC  DES/TDES、 SHA-1/-256、 AES-128/-192/-256 等国际安全算法,支持真随机数发生器,集成CRC16-CCITT校验模块。芯片提供了多种

    2024年01月23日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包