我们需要为浏览器创建自己的根CA证书来信任自签名证书。因此,让我们首先创建根CA证书
创建根CA证书
- 创建文件夹
mkdir openssl && cd openssl
- 执行以下openssl命令,生成 rootCA.key 以及 rootCA.crt. 用你的域名或者ip地址替换demo.mlopshub.com
openssl req -x509 \-sha256 -days 356 \-nodes \-newkey rsa:2048 \-subj "/CN=demo.mlopshub.com/C=US/L=San Fransisco" \-keyout rootCA.key -out rootCA.crt
如果上述命令提示Can’t load /home/username/.rnd into RNG,则需要你手动创建这个文件
生成自签名证书
- 生成server的私有key
openssl genrsa -out server.key 2048
- 创建证书签名请求配置
根据实际情况替换域名以及IP
cat > csr.conf <<EOF
[ req ]
default_bits = 2048
prompt = no
default_md = sha256
req_extensions = req_ext
distinguished_name = dn[ dn ]
C = US
ST = California
L = San Fransisco
O = MLopsHub
OU = MlopsHub Dev
CN = demo.mlopshub.com[ req_ext ]
subjectAltName = @alt_names[ alt_names ]
DNS.1 = demo.mlopshub.com
DNS.2 = www.demo.mlopshub.com
IP.1 = 192.168.1.5
IP.2 = 192.168.1.6EOF
- 使用服务器私钥生成证书签名请求(CSR)
openssl req -new -key server.key -out server.csr -config csr.conf
- 创建一个外部文件
根据实际情况替换域名以及IP
cat > cert.conf <<EOFauthorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names[alt_names]
DNS.1 = demo.mlopshub.comEOF
- 使用自签名CA生成SSL证书
openssl x509 -req \-in server.csr \-CA rootCA.crt -CAkey rootCA.key \-CAcreateserial -out server.crt \-days 365 \-sha256 -extfile cert.conf
server.crt 以及server.key就是我们在ingress创建secret或者nginx里用到的配置项