# 创建一个目录保存文件 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 > wso2mi.key openssl req -new -nodes -key wso2mi.key -out wso2mi.csr -subj $SUBJ # 使用 CA 签名生成域名或者 IP 地址证书,IP填实际需要使用的IP openssl x509 -req -days `expr \( \`date -d 99991231 +%s\` - \`date +%s\` \) / 86400 + 1` \ -in wso2mi.csr -out wso2mi.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.160, IP: ::1 ,DNS:wso2mi.com, DNS:*.wso2mi.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 wso2mi.pem && cat wso2mi.pem ) > wso2mi.crt
# 将证书导出为 PKCS12/PFX 格式,同时提供强密码 openssl pkcs12 -export -in wso2mi.crt -inkey wso2mi.key \ -name "calvinchan" -out wso2mi.pfx # 将 PKCS12/PFX 格式的密钥库转换为 Java 密钥库 keytool -importkeystore -srckeystore wso2mi.pfx -srcstoretype pkcs12 \ -destkeystore wso2mi.jks -deststoretype pkcs12 # 将jks文件复制到wso2的证书目录 cp wso2mi.jks /app/wso2mi-4.2.0/repository/resources/security # wso2 mi dashboard cp wso2mi.jks /app/wso2mi-dashboard-4.2.0/conf/security
# 把证书添加到WSO2信任库,wso2carbon是默认 client-truststore.jks 文件的密钥库密码 keytool -import -alias calvinchan -file wso2mi.crt -keystore \ /app/wso2mi-4.2.0/repository/resources/security/client-truststore.jks \ -storepass wso2carbon
# 配置文件目录 /app/wso2mi-4.2.0/conf/deployment.toml
keystore.tls 都修改为导出的jks,password和key_password是第二步导出jks时设置的密码
server的localhost替换成服务器IP,修改完成后重启wso2 mi
# 配置文件目录 /app/wso2mi-dashboard-4.2.0/conf/deployment.toml
keystore替换成生成的jks文件,修改完成后重启wso2 mi dashboard
进入浏览器设置---->隐私和安全---->安全---->选择管理证书
需要重启浏览器后证书才能生效!!!