1 签名证书与自签名证书
签名证书: 由权威颁发机构颁发给服务器或者个人用于证明自己身份的东西.
自签名证书: 由服务器自己颁发给自己, 用于证明自己身份的东西, 非权威颁发机构发布.
2 openssl 简介
openssl 是一个强大的安全套接字层密码库, 囊括主要的密码算法, 常用的密钥和证书封装管理功能及 SSL 协议, 并提供丰富的应用程序供测试或其它目的使用.
3 KEY 与 CSR 的区别
Key 通常用来存放一个公钥或者私钥, 并非 X.509 证书, 编码同样的, 可能是 PEM, 也可能是 DER. 证书自身拥有一个密钥对 (即一个公钥和一个私钥), 由公钥(Public Key) 与私钥 (Private Key) 是通过一种算法得到, 公钥是密钥对中公开的部分, 私钥则是非公开的部分. 一般公钥和密钥的关系为: 1, 公钥和私钥成对出现, 2, 公开的密钥叫公钥, 只有自己知道的叫私钥, 3, 用公钥加密的数据只有对应的私钥可以解密, 4, 用私钥加密的数据只有对应的公钥可以解密, 5, 如果可以用公钥解密, 则必然是对应的私钥加的密, 6, 如果可以用私钥解密, 则必然是对应的公钥加的密.
CSR 文件必须在申请和购买 SSL 证书之前创建. 也就是证书申请者在申请数字证书时由 CSP(加密服务提供者)在生成私钥的同时也生成证书请求文件, 证书申请 者只要把 CSR 文件提交给证书颁发机构后, 证书颁发机构使用其根证书私钥签名就生成了证书公钥文件, 也就是颁发给用户的证书.
4 证书配置之生成根证书
创建证书存放目录:
mkdir -p /data/cert && cd /data/cert
4.1 创建自己的 CA 证书(不使用第三方权威机构的 CA 来认证, 自己充当 CA 的角色)
- 1
- openssl genrsa -out ca.key 2048 #生成根证书私钥(无加密)
4.2 生成自签名证书(使用已有私钥 ca.key 自行签发根证书)
openssl req -x509 -new -nodes -key ca.key -days 10000 -out ca.crt -subj "/CN=Harbor-ca"
req 产生证书签发申请命令
-x509 签发 X.509 格式证书命令. X.509 是最通用的一种签名证书格式.
-new 生成证书请求
-key 指定私钥文件
-nodes 表示私钥不加密
-out 输出
-subj 指定用户信息
-days 有效期
5 证书配置之生成服务器端证书
5.1 生成服务器端私钥和 CSR 签名请求
openssl req -newkey rsa:4096 -nodes -sha256 -keyout server.key -out server.csr
一路回车...
5.2 签发服务器证书
- echo subjectAltName = IP:192.168.88.128> extfile.cnf
- openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -days 365 -extfile extfile.cnf -out server.crt
x509 签发 X.509 格式证书命令.
-req 表示证书输入请求.
-days 表示有效天数
-extensions 表示按 OpenSSL 配置文件 v3_req 项添加扩展.
-CA 表示 CA 证书, 这里为 ca.crt
-CAkey 表示 CA 证书密钥, 这里为 ca.key
-CAcreateserial 表示创建 CA 证书序列号
-extfile 指定文件
6 修改 hardor 的配置文件 hardor.cfg
更新主机名和协议
- #set 主机名
- hostname = 192.168.88.128
- #set ui_url_protocol
- ui_url_protocol = https
7 设置 docker 证书
如果如下目录不存在, 请创建, 如果有域名请按此格式依次创建
- mkdir -p /etc/docker/certs.d/192.168.88.128
- mkdir -p /etc/docker/certs.d/[IP2]
- mkdir -p /etc/docker/certs.d/[example1.com]
如果端口为 443, 则不需要指定. 如果为自定义端口, 请指定端口
/etc/docker/certs.d/yourdomain.com:port
将 ca 根证书依次复制到上述创建的目录中
cp ca.crt /etc/docker/certs.d/192.168.88.128/
8 为 Harbor 生成配置文件
首先重启下 docker
service docker restart
为 Harbor 生成配置文件
./prepare
9 完成启动 Harbor
docker-compose up -d
访问测试:
来源: http://www.bubuko.com/infodetail-3344700.html