1. 程式人生 > 實用技巧 >使用docker 建立SSL 證書

使用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)。