我正在编写一个客户端,它将使用docker中的Remote API来使用公开的REST服务。我想保护客户端和服务器之间的通信。我不完全熟悉证书处理。我以编程方式包含了信任存储,其中包含服务器的公共证书给我的客户端。我知道我必须遵循同样的方法。但是在从Docker阅读有关它的文档之后我感到有些困惑:
http://docs.docker.com/articles/https/
据我所知,我必须生成两组密钥,一组用于服务器,另一组用于客户端。按照docker文档中的步骤,我生成了以下内容:
MacBook-Pro:misc Joe$ ls -l
total 40
-rw-r--r-- 1 Joe staff 1743 Nov 19 23:06 ca-key.pem
-rw-r--r-- 1 Joe staff 1346 Nov 19 23:06 ca.pem
-rw-r--r-- 1 Joe staff 1743 Nov 19 23:10 key.pem
-rw-r--r-- 1 Joe staff 0 Nov 19 23:14 server-cert.pem
-rw-r--r-- 1 Joe staff 1751 Nov 19 23:07 server-key.pem
-rw-r--r-- 1 Joe staff 907 Nov 19 23:13 server.csr
ca-key.pem和ca.pem有什么区别,同样什么是server-cert.pem和server-key.pem?哪些用于服务器,哪些用于客户端?
但无论如何,尝试以下方法会给我一个错误:
MacBook-Pro:misc Joe$ openssl x509 -req -days 365 -in server.csr -CA ca.pem -CAkey ca-key.pem -out server-cert.pem
Signature ok
subject=Dummy
Getting CA Private Key
Enter pass phrase for ca-key.pem:
ca.srl: No such file or directory
6502:error:02001002:system library:fopen:No such file or directory:/SourceCache/OpenSSL098/OpenSSL098-44/src/crypto/bio/bss_file.c:356:fopen('ca.srl','r')
6502:error:20074002:BIO routines:FILE_CTRL:system lib:/SourceCache/OpenSSL098/OpenSSL098-44/src/crypto/bio/bss_file.c:358: