使用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%

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM