• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
留白
世人慌慌张张,不过图碎银几两
博客园    首页    新随笔       管理    订阅  订阅
使用docker 创建SSL 证书

今天在学习gRPC的安全通信时,需要创建SSL自签名证书,以往是在linux 虚拟机中创建,现在学习了docker,我尝试在docker上创建证书也非常方便。

1,启动 frapsoft/openssl 镜像

docker run -it --entrypoint /bin/ash frapsoft/openssl

2,创建一个私钥

openssl genrsa -out server.key 2048

3,根据私钥生成csr

如果想从一个认证中心(Certificate Authority,CA)获取一个SSL证书,我们需要生成一个证书签名请求(Certificate Signing Reqeusts,CRSs)。一个CSR主要包含钥匙对中的公钥,以及其它一些重要的信息。
openssl req -new -sha256 -key server.key -out server.csr

执行上面的命令后,需要完成一些信息的填写,主要有:

Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

填写完这些信息后,就会生成一个证书签名请求(server.csr)

4,生成证书

如果想使用一个SSL证书来对通信进行加密,但是不需要使用CA签字的证书,那么我们可以生成一个自签名的证书。

使用前面生成的私钥(server.key)以及证书签名请求(server.csr),我们可以生成一个自签名的证书:

openssl x509 -req -sha256 -in server.csr -signkey server.key -out server.crt -days 3650

选项-x509指定req来生成一个自签名的证书。-days 3650指定了证书的有效期是3650天。-signkey指定了私钥,而-in指定了证书签名请求。

这样,就能生成一个自签名的证书(server.crt)。

 

5,将证书复制到宿主机

0) 将证书以及私钥,证书签名请求文件(server.key,server.csr,server.crt)放到一个文件夹

mkdir certificate
mv server* /certificate/

 

1) 新开一个cmd窗口,执行 docker ps 命令查看容器id,例如:

docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a6db71863976 frapsoft/openssl "/bin/ash" 32 minutes ago Up 32 minutes angry_spence

2)使用docker cp 命令,将文件夹复制到宿主机当前目录

docker cp a6db71863976:/certificate %cd%

 

posted on 2020-07-30 16:43  留白s  阅读(3282)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3