# 创建一个目录保存文件 mkdir -p ssl cd ssl # wso2要求RSA要大于等于2048 openssl genrsa 4096 > ca.key # 设置一个环境变量,用于信任CA证书 export SUBJ="/C=CN/ST=ST$RANDOM/O=O$RANDOM/OU=OU$RANDOM/CN=\ CN$RANDOM/emailAddress=$RANDOM@localhost" # 有效日期从当天到 9999年12月31日 openssl req -new -x509 -days `expr \( \`date -d 99991231 +%s\` - \`date +%s\` \) / 86400 + 1` \ -key ca.key -out ca.pem -subj $SUBJ -extensions v3_ca
# 生成密钥 openssl genrsa 4096 > wxhntmy.key openssl req -new -nodes -key wxhntmy.key -out wxhntmy.csr -subj $SUBJ # 使用 CA 签名生成域名或者 IP 地址证书,IP填实际需要使用的IP openssl x509 -req -days `expr \( \`date -d 99991231 +%s\` - \`date +%s\` \) / 86400 + 1` \ -in wxhntmy.csr -out wxhntmy.pem -CA ca.pem -CAkey ca.key -set_serial 0 -extensions \ CUSTOM_STRING_LIKE_SAN_KU\ -extfile <( cat << EOF [CUSTOM_STRING_LIKE_SAN_KU] subjectAltName=IP:192.168.100.149, IP: ::1 ,DNS:wxhntmy.com, DNS:*.wxhntmy.com keyUsage = nonRepudiation, digitalSignature, keyEncipherment EOF )
# 通过 pem 生成 crt ( openssl x509 -noout -text -in ca.pem && cat ca.pem ) > ca.crt ( openssl x509 -noout -text -in wxhntmy.pem && cat wxhntmy.pem ) > wxhntmy.crt
# 将证书导出为 PKCS12/PFX 格式,同时提供强密码 openssl pkcs12 -export -in wxhntmy.crt -inkey wxhntmy.key \ -name "calvinchan" -out wxhntmy.pfx # 将 PKCS12/PFX 格式的密钥库转换为 Java 密钥库 keytool -importkeystore -srckeystore wxhntmy.pfx -srcstoretype pkcs12 \ -destkeystore wxhntmy.jks -deststoretype pkcs12 # 将jks文件复制到wso2的证书目录 cp wxhntmy.jks /app/wso2am-4.1.0/repository/resources/security/
# 把证书添加到WSO2信任库,wso2carbon”是默认 client-truststore.jks 文件的密钥库密码 keytool -import -alias calvinchan -file wxhntmy.crt -keystore \ /app/wso2am-4.1.0/repository/resources/security/client-truststore.jks \ -storepass wso2carbon
# 配置文件目录 /app/wso2am-4.1.0/repository/conf/deployment.toml
keystore.tls
keystore.primary
keystore.internal
都修改为同一个jks,password和key_password是第二步导出jks时设置的密码
所有的localhost都有替换成证书IP,修改完成后重启wso2
进入浏览器设置---->隐私和安全---->安全---->选择管理证书
需要重启浏览器后证书才能生效!!!