但是实际上网站使用的证书肯定都不是由根CA直接签发的,比如
淘宝登陆服务器使用的证书。
我之前是自己写了脚本由自签CA直接签发服务器证书,为了真清楚的理解一下证书链的作用就直接使用openssl先签发2层的子CA,再由子CA去签发服务器证书。
手动签发证书的脚本如下:
生成自签CA
点击(此处)折叠或打开
- # cat makerootca.sh
- #!/bin/bash
- DIR=/root/ssl.test2
- mkdir -p $DIR/demoCA/{private,newcerts}
- touch $DIR/demoCA/index.txt
- echo 01 > $DIR/demoCA/serial
- openssl genrsa -des3 -out $DIR/demoCA/private/cakey.pem 2048
- openssl req -new -x509 -days 3650 -key $DIR/demoCA/private/cakey.pem -out $DIR/demoCA/careq.pem
点击(此处)折叠或打开
- # cat no2domain.sh
- #!/bin/bash
- NAME=$1
- DIR=$(pwd)/autoget
- openssl genrsa -des3 -out $DIR/$NAME.key 2048
- openssl rsa -in $DIR/$NAME.key -out $DIR/$NAME.key
- openssl req -new -days 3650 -key $DIR/$NAME.key -out $DIR/$NAME.csr
- openssl ca -extensions v3_ca -in $DIR/$NAME.csr -config ./openssl.cnf -days 3000 -out $DIR/$NAME.crt -cert $DIR/../demoCA/careq.pem -keyfile $DIR/../demoCA/private/cakey.pem
sh no2domain.sh no2
点击(此处)折叠或打开
- # cat no3domain.sh
- #!/bin/bash
- [ $# -ne 1 ] && echo "$0 NAME" && exit
- NAME=$1
- DIR=$(pwd)/autoget
- openssl genrsa -des3 -out $DIR/$NAME.key 2048
- openssl rsa -in $DIR/$NAME.key -out $DIR/$NAME.key
- openssl req -new -days 3650 -key $DIR/$NAME.key -out $DIR/$NAME.csr
- openssl ca -in $DIR/$NAME.csr -extensions v3_ca -config ./openssl.cnf -days 3000 -out $DIR/$NAME.crt -cert $DIR/no2.crt -keyfile $DIR/no2.key
sh no3domain.sh no3
点击(此处)折叠或打开
- # cat no4domain.sh
- #!/bin/bash
- [ $# -ne 1 ] && echo "$0 NAME" && exit
- NAME=$1
- DIR=$(pwd)/autoget
- openssl genrsa -des3 -out $DIR/$NAME.key 2048
- openssl rsa -in $DIR/$NAME.key -out $DIR/$NAME.key
- openssl req -new -days 3650 -key $DIR/$NAME.key -out $DIR/$NAME.csr
- openssl ca -in $DIR/$NAME.csr -config ./openssl.cnf -days 3000 -out $DIR/$NAME.crt -cert $DIR/no3.crt -keyfile $DIR/no3.key
sh no4domain.sh my.domain.net