使用openssl生成自签证书
服务端
-
生成key
openssl genrsa -out server-key.key 1024
-
生成请求文件
openssl req -new -out server-req.csr -key server-key.key
内容说明:
Country Name (2 letter code) [AU]: 国籍 State or Province Name (full name) [Some-State]: 省会 Locality Name (eg, city) []: 城市 Organization Name (eg, company) [Internet Widgits Pty Ltd]: 公司 Organizational Unit Name (eg, section) []: 组织 Common Name (e.g. server FQDN or YOUR name) []: 域名 Email Address []: 邮箱
-
证书cer
openssl x509 -req -in server-req.csr -out server-cert.cer -signkey server-key.key -CAcreateserial -days 3650
客户端
-
生成key
openssl genrsa -out client-key.key 1024
-
生成请求文件
openssl req -new -out client-req.csr -key client-key.key
-
证书cer
openssl x509 -req -in client-req.csr -out client-cert.cer -signkey client-key.key -CAcreateserial -days 3650
-
带密码的p12证书
双向认证的话,浏览器访问时候要导入该证书才行
Android请求的时候也需要把它转成bks来请求双向认证
openssl pkcs12 -export -clcerts -in client-cert.cer -inkey client-key.key -out client.p12
其他
p12转bks
keytool -importkeystore -srckeystore client.p12 -srcstoretype pkcs12 -destkeystore client.bks -deststoretype bks -provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath bcprov-ext-jdk15on-157.jar
p12转pem
openssl pkcs12 -in client.p12 -nocerts -nodes -out client.pem