使用Docker生成SSL证书

简介: 本文讲的是使用Docker生成SSL证书【编者的话】学习如何使用Docker生成SSL证书,而不是在主机上生成。
本文讲的是使用Docker生成SSL证书【编者的话】学习如何使用Docker生成SSL证书,而不是在主机上生成。

当听到“Docker”和“SSL”这两个词的时候,你很可能会认为是在说创建SSL证书来保护Docker daemon本身。这很重要但是已经有很多文章详细介绍过了。或者你可能认为我们在讨论创建SSL证书供容器化的应用程序使用。如果你使用第三方工具(比如 这种 这种工具 )这也很简单。但是你知道吗,还可以使用Docker容器来为主机创建SSL证书?

使用Docker生成SSL证书

使用Docker生成SSL证书大多数开发人员并没有想这么做过。但是这么做很简洁也很方便。你可能会问为什么会想用Docker容器来为主机生成SSL证书呢。为什么不能在主机上完成呢?

是的,可以在主机上完成。但是你必须已经在主机上安装了正确的工具(比如OpenSSL)。并且如果你想让Docker服务器尽可能简洁的话,你很可能不想安装类似OpenSSl这样的工具。另外,你可能并不是使用的生产环境Docker服务器,而是使用的Docker测试环境。如果你和我一样,那么这个测试环境实际上就是你的个人笔记本,很可能没有安装OpenSSL或者其他服务器工具。

的确,我也可以apt-get来安装openssl包(或者apache2-utils),但是我不想把我的笔记本变成服务器。最重要的是,我想让事情尽可能简洁。这也正是容器一开始就这么吸引人的主要原因。

从Docker容器生成SSL证书

不在主机上生成证书,而是使用Docker容器生成SSL证书,这对我来说很好。也很简单,按照如下步骤即可。

首先,使用Docker Hub  Nginx 镜像拉取一个支持SSL证书创建的容器镜像。该镜像已经内建安装了OpenSSL。(如果你的镜像没有包含OpenSSL,可以自行安装到镜像里,或者更简单地在启动容器时进行安装)。

示例命令:
docker pull nginx

接下来,需要创建私钥和证书签署请求:
docker run -v $PWD:/work -it nginx openssl req -out /work/CSR.csr -new 
-newkey rsa:2048 -nodes -keyout /work/privateKey.key

现在可以看到主机上的working目录包含文件privateKey.key和CSR.csr。如果想要使用它们创建自签名的证书,运行如下命令:
docker run -v $PWD:/work -it nginx openssl req -x509 -sha256 -nodes 
-days 365 -newkey rsa:2048 -keyout privateKey.key -out 
/work/certificate.crt

现在主机的working目录已经有了签名的证书, certificate.crt。

好啦。我们已经使用OpenSSL创建出了SSL证书,而实际上并没有在主机系统上运行OpenSSL。

更进一步

使用上述命令还可以做更多事情。实际上,如果想要为Docker主机或者容器自动化SSL证书的创建,可以将这些命令集成进Dockerfile,然后使用它在使用Codefresh创建的容器化应用里构建SSL证书的创建。

原文链接:Using Docker to Generate SSL Certificates(翻译:崔婧雯)  
===========================
译者介绍

崔婧雯,现就职于IBM,高级软件工程师,负责IBM WebSphere业务流程管理软件的系统测试工作。曾就职于VMware从事桌面虚拟化产品的质量保证工作。对虚拟化,中间件技术,业务流程管理有浓厚的兴趣。

原文发布时间为:2016-10-30

本文作者:崔婧雯

本文来自云栖社区合作伙伴Dockerone.io,了解相关信息可以关注Dockerone.io。

原文标题:使用Docker生成SSL证书

相关文章
|
域名解析 网络协议 应用服务中间件
Docker搭建Nginx并配置ssl证书
Docker搭建Nginx并配置ssl证书
2469 1
Docker搭建Nginx并配置ssl证书
|
弹性计算 Cloud Native Java
Docker安装emqx详解(配置SSL证书、开启WSS、鉴权)
Docker安装emqx详解(配置SSL证书、开启WSS、鉴权)
4128 0
|
应用服务中间件 网络安全 nginx
|
24天前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
181 77
|
5天前
|
搜索推荐 安全 数据安全/隐私保护
7 个最能提高生产力的 Docker 容器
7 个最能提高生产力的 Docker 容器
74 35
|
1月前
|
监控 Docker 容器
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序
|
4天前
|
Ubuntu Linux 开发工具
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈
Docker 是一个开源的容器化平台,允许开发者将应用程序及其依赖项打包成标准化单元(容器),确保在任何支持 Docker 的操作系统上一致运行。容器共享主机内核,提供轻量级、高效的执行环境。本文介绍如何在 Ubuntu 上安装 Docker,并通过简单步骤验证安装成功。后续文章将探讨使用 Docker 部署开源项目。优雅草央千澈 源、安装 Docker 包、验证安装 - 适用场景:开发、测试、生产环境 通过以上步骤,您可以在 Ubuntu 系统上成功安装并运行 Docker,为后续的应用部署打下基础。
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈
|
10天前
|
Unix Linux Docker
CentOS停更沉寂,RHEL巨变限制源代:Docker容器化技术的兴起助力操作系统新格局
操作系统是计算机系统的核心软件,管理和控制硬件与软件资源,为用户和应用程序提供高效、安全的运行环境。Linux作为开源、跨平台的操作系统,具有高度可定制性、稳定性和安全性,广泛应用于服务器、云计算、物联网等领域。其发展得益于庞大的社区支持,多种发行版如Ubuntu、Debian、Fedora等满足不同需求。
38 4
|
26天前
|
数据建模 应用服务中间件 nginx
docker替换宿主与容器的映射端口和文件路径
通过正确配置 Docker 的端口和文件路径映射,可以有效地管理容器化应用程序,确保其高效运行和数据持久性。在生产环境中,动态替换映射配置有助于灵活应对各种需求变化。以上方法和步骤提供了一种可靠且易于操作的方案,帮助您轻松管理 Docker 容器的端口和路径映射。
80 3
|
1月前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
99 7

热门文章

最新文章