openssl生成SSL证书
基础知识
https = http + ssl
密码体制 |
组成 |
加密 |
解密 |
公钥私钥 |
公钥+私钥+加密解密算法 |
公钥+加密算法 |
私钥+解密算法 |
对称加密 |
密匙+加密解密算法 |
密匙+加密算法 |
密匙+解密算法 |
非对称加密 |
加密匙+解密匙+加密解密算法 |
加密匙+加密算法 |
解密匙+解密算法 |
RSA |
公钥+私钥+加密解密算法 |
公钥或私钥+加密算法 |
公钥或私钥+解密算法 |
签名加加密 |
签名hash+内容+加密解密算法 |
签名hash+内容+加密算法 |
签名hash+内容+解密算法 |
openssl生成SSL证书
生成自定义CA自签名证书(根证书)
opesnssl
全局配置一般在/usr/lib/ssl/openssl.cnf
通常生成方法
1 2 3 4 5 6 7
| openssl genrsa -des3 -out ca.key 1024 openssl rsa -in ca.key -out ca.key
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
cat ca.key ca.crt > ca.pem
|
快速生成方法
1 2 3
| openssl genrsa -out ca.com.key 2048 openssl req -new -x509 -nodes -days 3650 -key ca.com.key -out ca.com.crt -subj /C=CN/ST=Chongqing/L=Chongqing/O=org/OU=OrgUnit/CN=ca.com/emailAddress=test@test.com
|
服务端证书签发
通常方法
1 2 3 4 5 6 7 8 9 10 11 12
| openssl genrsa -des3 -out server.key 1024
openssl rsa -in server.key -out server.key
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt
openssl x509 -req -days 3650 -in server.csr -CA ca.pem -CAkey ca.pem -CAcreateserial -out server.crt
|
快速方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| openssl req -newkey rsa:2048 -days 3650 -nodes -keyout x.com.key -out x.com.csr -subj /C=CN/ST=Chongqing/L=Chongqing/O=org/OU=OrgUnit/CN=*.x.com/emailAddress=test@test.com
cat << EOF > v3.ext authorityKeyIdentifier=keyid,issuer basicConstraints=CA:FALSE keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment subjectAltName = @alt_names [alt_names] DNS.1 = *.x.com EOF
openssl x509 -req -in x.com.csr -days 3650 -CA ca.com.crt -CAkey ca.com.key -set_serial 101 -out x.com.crt -extfile v3.ext
|
根证书安装
windows
直接双击*.crt
文件安装,注意在选择证书存储的时候选择 受信任的根证书颁发机构
ubuntu
1 2 3 4
| sudo su -
mv ca.com.crt /usr/local/share/ca-certificates/ca.com.crt update-ca-certificates
|
centos
1 2 3
| mv ca.com.crt /etc/pki/ca-trust/source/anchors/ca.com.crt update-ca-trust
|
Java 中导入根证书
1 2 3
| cd $JAVA_HOME ./jre/bin/keytool -keystore jre/lib/security/cacerts -importcert -alias ca.com -file ca.com.crt
|