签名证书:由权威颁发机构颁发给服务器或者我的用于证实本身身份的东西。node
自签名证书:由服务器本身颁发给本身,用于证实本身身份的东西,非权威颁发机构发布。算法
openssl 是一个强大的安全套接字层密码库,囊括主要的密码算法、经常使用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。docker
Key一般用来存放一个公钥或者私钥,并不是X.509证书,编码一样的,多是PEM,也多是DER。证书自身拥有一个密钥对(即一个公钥和一个私钥),由公钥(Public Key)与私钥(Private Key)是经过一种算法获得,公钥是密钥对中公开的部分,私钥则是非公开的部分。通常公钥和密钥的关系为:1,公钥和私钥成对出现、2,公开的密钥叫公钥,只有本身知道的叫私钥、3,用公钥加密的数据只有对应的私钥能够解密、4,用私钥加密的数据只有对应的公钥能够解密、5,若是能够用公钥解密,则必然是对应的私钥加的密、6,若是能够用私钥解密,则必然是对应的公钥加的密。安全
CSR文件必须在申请和购买SSL证书以前建立。也就是证书申请者在申请数字证书时由CSP(加密服务提供者)在生成私钥的同时也生成证书请求文件,证书申请 者只要把CSR文件提交给证书颁发机构后,证书颁发机构使用其根证书私钥签名就生成了证书公钥文件,也就是颁发给用户的证书。服务器
建立证书存放目录:dom
mkdir -p /data/cert && cd /data/cert
openssl genrsa -out ca.key 2048 #生成根证书私钥(无加密)
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 有效期
openssl req -newkey rsa:4096 -nodes -sha256 -keyout server.key -out server.csr
一路回车。。。测试
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 指定文件
更新主机名和协议ui
#set主机名 hostname = 192.168.88.128 #set ui_url_protocol ui_url_protocol = https
# 若是以下目录不存在,请建立,若是有域名请按此格式依次建立
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/
#首先重启下docker
service docker restart
#为Harbor生成配置文件
./prepare
docker-compose up -d
访问测试:编码
docker-compose down -v加密