From: 刘洪青 Date: Sat, 15 May 2021 13:22:10 +0000 (+0800) Subject: chore: 基于应用商店的部署文档 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=d62e00bf928709ec09ddbd0e478db15153a99458;p=institute%2Fdeploy-authx-service.git chore: 基于应用商店的部署文档 --- diff --git "a/deploy-manifests/charts/1.2.0000.\350\256\244\350\257\201\346\216\210\346\235\203\346\234\215\345\212\241\345\256\211\350\243\205\351\203\250\347\275\262\346\211\213\345\206\214\357\274\210\345\237\272\344\272\216\345\272\224\347\224\250\345\225\206\345\272\227\357\274\211.md" "b/deploy-manifests/charts/1.2.0000.\350\256\244\350\257\201\346\216\210\346\235\203\346\234\215\345\212\241\345\256\211\350\243\205\351\203\250\347\275\262\346\211\213\345\206\214\357\274\210\345\237\272\344\272\216\345\272\224\347\224\250\345\225\206\345\272\227\357\274\211.md" index 3c4def5..5331b46 100644 --- "a/deploy-manifests/charts/1.2.0000.\350\256\244\350\257\201\346\216\210\346\235\203\346\234\215\345\212\241\345\256\211\350\243\205\351\203\250\347\275\262\346\211\213\345\206\214\357\274\210\345\237\272\344\272\216\345\272\224\347\224\250\345\225\206\345\272\227\357\274\211.md" +++ "b/deploy-manifests/charts/1.2.0000.\350\256\244\350\257\201\346\216\210\346\235\203\346\234\215\345\212\241\345\256\211\350\243\205\351\203\250\347\275\262\346\211\213\345\206\214\357\274\210\345\237\272\344\272\216\345\272\224\347\224\250\345\225\206\345\272\227\357\274\211.md" @@ -8,7 +8,7 @@ 版本 | 作者 | 日期 | 备注 - | - | - | - -v1 | 刘洪青 | 2020-06-10 | 初稿 +v1 | 刘洪青 | 2021-05-15 | 初稿 [TOC] @@ -264,7 +264,7 @@ v1 | 刘洪青 | 2020-06-10 | 初稿 v4认证迁移数据 | tmp_data 命令: - **请修改命令中的 `your_password` 为实际的数据库帐号的密码** + **请修改命令中的 `your_password` 为实际的数据库用户的密码** ``` create user 'agent_service'@'%' identified with mysql_native_password by 'your_password'; @@ -375,34 +375,295 @@ v1 | 刘洪青 | 2020-06-10 | 初稿 #### minio -模式: standalone +命名空间: authx-minio -Access Key: 1y8N@8R@a_2u -Secret Key: 8pxlIe9#lN7Q +* MINIO配置 + 模式: standalone -域名: authx-minio.paas.xxx.edu.cn + Access Key: `1y8N@8R@a_2u` + Secret Key: `8pxlIe9#lN7Q` + + 域名: `authx-minio.paas.xxx.edu.cn` ,请修改为实际的学校域名 + + Default storageClass: <请选择存储类> #### agent-service +命名空间: agent-service + +* 外部MYSQL-连接配置 + 外部MySQL host: <请填写数据库服务的IP地址> + 外部MySQL port: <请填写数据库服务的端口> + +* AGENT SERVICE - MYSQL数据库配置 + 用户名: `agent_service` ,固定值 + 密码: <请填写创建的数据库用户的密码> + 数据库名: `agent_service` ,固定值 + +* 文件服务设置 + Minio Url: `http://minio.authx-minio.svc.cluster.local:9000` ,若 minio 的命名空间有调整,请修改 + Minio Access Key: `1y8N@8R@a_2u` + Minio Secret Key: `8pxlIe9#lN7Q` + +* 邮箱服务配置 + 邮件发送模式: smtp + SMTP Host: + SMTP Port: + SMTP Secure Mode: + SMTP 用户名: + SMTP 密码: + SMTP 发件人名称: +* 短信服务配置 + 短信发送模式: aliyun 对接阿里云的短信服务 + 阿里云短信接口地域: cn-hangzhou + 阿里云短信接口Access Key: + 阿里云短信接口Access Secret: #### authx-service +命名空间: authx-service + +* MYSQL服务 - 服务地址 + MySQL服务 host: <请填写数据库服务的IP地址> + MySQL服务 port: <请填写数据库服务的端口> + +* REDIS配置 - 安全配置 + Redis密码: `OEt1d29zbE9pdXc3SA==` + + Default Storage Class: <请选择存储类> + +* RABBITMQ配置 - 安全配置 + 用户名: guest + 密码: guest + +* 简易监控设置 - 用户密码 + 用户名: sbaadmin + 密码: nimdaabs + + +* 依赖服务 - 文件服务设置 + + Minio外网地址: `http://authx-minio.paas..edu.cn` ,请设置为 minio 的外网地址 + +* 依赖服务 - 认证设置 + + CAS认证地址: `http://cas.paas..edu.cn/cas` ,请设置为 cas 认证的外网地址 + +* 依赖服务 - POA 设置 + + POA网关地址: `http://poa.paas..edu.cn` ,请设置为 poa 网关的外网地址 + POA SA地址: `http://poa-sa.paas..edu.cn` ,请设置为 poa-sa 管理接口的地址(也可使用 k8s 内部地址) + +* 依赖服务 - CAS SERVER + + CAS内部地址: `http://cas-server-webapp.cas-server.svc.cluster.local:8080/cas` ,固定值,若 cas-server 的命名空间有调整,请修改 + CAS SA API内部地址: `http://cas-server-sa.cas-server.svc.cluster.local:8080` ,固定值,若 cas-server 的命名空间有调整,请修改 + +* 依赖服务 - AGENT SERVICE + + Agent Service API内部地址: `http://agent-service.agent-service.svc.cluster.local:8080` ,固定值,若 agent-service 的命名空间有调整,请修改 + + Agent Service 文件上传路径: `/api/v1/tpas/file/minio` ,一般不用修改 + Agent Service 邮件发送路径: `/api/v1/tpas/mail/smtp` ,一般不用修改 + Agent Service 短信发送路径: `/api/v1/tpas/sms/aliyun` , 若不使用阿里云短信服务,须修改 + + +* 用户服务 - MYSQL数据库配置 + + 用户名: `user` ,固定值 + 密码: <请填写创建的数据库用户的密码> + 数据库名: `user` ,固定值 + +* 授权服务 - MYSQL数据库配置 + + 用户名: `user_authz` ,固定值 + 密码: <请填写创建的数据库用户的密码> + 数据库名: `user_authz` ,固定值 + +* 安全中心 - 域名配置 + + 域名: `security-center.paas..edu.cn` ,请修改为实际的学校域名 #### jobs-server +命名空间: jobs-server + +* 外部RABBITMQ - 连接配置 + + 外部RabbitMQ host: `authx-service-rabbitmq.authx-service.svc.cluster.local` ,连接 authx-service 的rabbitmq, 若 authx-service 的命名空间有调整,请修改 + 外部RabbitMQ port: 5672 + +* RABBITMQ配置 - 安全配置 + + 用户名: guest + 密码: guest + +* 用户数据 - 数据源配置 + + JDBC URL: `jdbc:mysql://authx-service-mysql-server.authx-service.svc.cluster.local:3306/user?serverTimezone=Asia/Shanghai` ,连接 authx-service 的mysql,若 authx-service 的命名空间有调整,请修改 + JDBC用户名: user + JDBC密码: <请填写创建的数据库用户的密码> + +* 用户数据 - API设置 + + GOA API地址: `http://authx-service-user-data-service-goa.authx-service.svc.cluster.local:8080` ,固定值,若 authx-service 的命名空间有调整,请修改 #### cas-server +命名空间: cas-server + +* 外部MYSQL-连接配置 + 外部MySQL host: <请填写数据库服务的IP地址> + 外部MySQL port: <请填写数据库服务的端口> + +* REDIS配置 - 安全配置 + Redis密码: `OEt1d29zbE9pdXc3SA==` + + Default Storage Class: <请选择存储类> + +* RABBITMQ配置 - 安全配置 + 用户名: guest + 密码: guest + + +* 依赖服务 - 用户服务 + + 用户数据API内部地址: `http://authx-service-user-data-service-goa.authx-service.svc.cluster.local:8080` ,固定值,若 authx-service 的命名空间有调整,请修改 + +* 依赖服务 - 授权服务 + + 用户授权API内部地址: `http://authx-service-user-authz-service-sa.authx-service.svc.cluster.local:8080` ,固定值,若 authx-service 的命名空间有调整,请修改 + +* 依赖服务 - AGENT SERVICE + + Agent Service 内部地址: `http://agent-service.agent-service.svc.cluster.local:8080` ,固定值,若 agent-service 的命名空间有调整,请修改 + + Agent Service文件服务API路径: `/api/v1/tpas/file/minio` ,一般不用修改 + Agent Service短信发送API路径: `/api/v1/tpas/sms/aliyun/send` , 若不使用阿里云短信服务,须修改 + +* 依赖服务 - TOKEN SERVER + + Token Server 内部地址: `http://token-server.token-server.svc.cluster.local:8080` ,固定值,若 token-server 的命名空间有调整,请修改 + + +* CAS 认证 - MYSQL数据库配置 + 用户名: `cas_server` ,固定值 + 密码: <请填写创建的数据库用户的密码> + 数据库名: `cas_server` ,固定值 + +* SCHEME设置 - 持久卷 + + Default Storage Class: <请选择存储类> + +* WEBAPP设置-域名配置 + + 域名: `cas.paas..edu.cn` ,请修改为实际的学校域名 + +* WEBAPP设置-图片验证码 + + 启用图片验证码: 是 or 否 + +* WEBAPP设置-动态密码 + + 动态密码短信标题: 认证中心,固定值 + 动态密码短信模板: 请修改为合适的短信模板 + +* WEBAPP设置-JWT + + 参考 certs/jwt/readme.md 生成公私钥pem,修改相关配置(请使用与 token-server 一致的公私钥) + + JWT私钥: + JWT公钥: + +* DATAX设置-参数配置 + + 数据源JdbcUrl: `jdbc:mysql://authx-service-mysql-server.authx-service.svc.cluster.local:3306/user?serverTimezone=Asia/Shanghai` ,连接 authx-service 的mysql,若 authx-service 的命名空间有调整,请修改 + 数据源用户名: user + 数据源密码: <请填写创建的数据库用户的密码> #### token-server +命名空间: token-server + +* 外部MYSQL-连接配置 + 外部MySQL host: <请填写数据库服务的IP地址> + 外部MySQL port: <请填写数据库服务的端口> + +* REDIS配置 - 安全配置 + Redis密码: `OEt1d29zbE9pdXc3SA==` + + Default Storage Class: <请选择存储类> + + +* 依赖服务 - 用户服务 + + 用户数据API内部地址: `http://authx-service-user-data-service-goa.authx-service.svc.cluster.local:8080` ,固定值,若 authx-service 的命名空间有调整,请修改 + +* 依赖服务 - AGENT SERVICE + + Agent Service 内部地址: `http://agent-service.agent-service.svc.cluster.local:8080` ,固定值,若 agent-service 的命名空间有调整,请修改 + + Agent Service短信发送API路径: `/api/v1/tpas/sms/aliyun/send` , 若不使用阿里云短信服务,须修改 + +* 依赖服务 - CAS SERVER + + CAS SA API内部地址: `http://cas-server-sa.cas-server.svc.cluster.local:8080` ,固定值,若 cas-server 的命名空间有调整,请修改 + + +* TOKEN SERVER - MYSQL数据库配置 + 用户名: `token_server` ,固定值 + 密码: <请填写创建的数据库用户的密码> + 数据库名: `token_server` ,固定值 + +* TOKEN SERVER设置-域名配置 + + 域名: `token.paas..edu.cn` ,请修改为实际的学校域名 + +* TOKEN SERVER设置-动态密码 + + 动态密码短信标题: 认证中心,固定值 + 动态密码短信模板: 请修改为合适的短信模板 + +* TOKEN SERVER设置-JWT + + 参考 certs/jwt/readme.md 生成公私钥pem,修改相关配置(请使用与 cas-server 一致的公私钥) + + JWT私钥: + JWT公钥: + + +* TOKEN SERVER设置-平台OPEN API + + Platform OpenAPI地址: `https://poa.paas..edu.cn` ,请设置为 poa 网关的外网地址 + Platform OpenAPI Client Id: 从 POA 进行申请 + Platform OpenAPI Client Secret: 从 POA 进行申请 + +* TOKEN SERVER设置-消息服务 + + 是否开启消息服务-个推: true or false + 消息服务应用ID: 从 消息服务 进行申请 + + +* TOKEN SERVER设置-人脸服务配置 + 可与 新开普人脸平台 或 百度人脸服务 进行对接 + 人脸登录类型: aiface: 新开普人脸, aipface: 百度人脸 + **以下配置从 新开普人脸平台 申请** + 新开普人脸登录Url: + 新开普人脸登录App Key: + 新开普人脸登录App Secret: + 新开普人脸登录Secret Key: + 新开普人脸登录Term Code: + **以下配置从 百度开放平台 申请** + 百度人脸登录App Id: + 百度人脸登录Api Key: + 百度人脸登录Secret Key: diff --git a/deploy-manifests/charts/certs/jwt/jwt_private_key.pem b/deploy-manifests/charts/certs/jwt/jwt_private_key.pem new file mode 100644 index 0000000..e1c0db0 --- /dev/null +++ b/deploy-manifests/charts/certs/jwt/jwt_private_key.pem @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEogIBAAKCAQEAyor3CX6A6U4EoSHawtALiJoB0CkJnb/wmVkcVT5EmNupGVrV +SeJo80ZAxsgd9S1CZVXxTXtJ7XjsqnzR64Qvrn+tdvj9Ck5k/6Tnp6HoKU/AQxA3 +tQ5Zqw6D6ihPOyVV4z4cdK5wjzEBNPhJuTjjzP4VQ4h4VseWNbfhXGK3vSes8oNn +5Wwor9r1UbEJP/ZMHrDJxAcwe0GPvebAqEp4O5ZcTtWnq+/qkoUB6z/52EnCMlto +PmuMC+o3fWdICBf4q70oSDClfuhLVi4mRT2K5UUH8fsxEe6oPtkvk9vVCCOZRmo0 +MXpXZiIqdZOtgcBzn/0mzoNd58KxeIy0ginjfwIDAQABAoIBAFbVhx3B54Cemyt9 +uS0mRpuU80wMG/xOqtcDtjrxjDVAj1m4cJLRh48swl62sulHMx0A4IgIYGR4IHbj +NphTPqIASR0lmE6P14smZs6egksbzuCxlkCAW38TpQiBqZ5A3najTU3U75rkNpFA +FVNciYV8NR+T5YvG26ZCJFMYW4+zLJnEmUuF2qo9Y4TlqAc7dUmRKR4A2eJvDBDA +X4y7vv0kACFhnSZsgDXbFN1f3/w5nIEqru6ExWGYhBciak0cglRyZsiKgDgLah5C +pyXBn3rq8FCLl+TVanWIY/yTPt5PJVw0cqMgtEAA4Z30fObl1fzp1wlQQvBgAbjD ++A2oh8kCgYEA48I7W1W/40Lq9iWLEg0tLGSN0uF/dvYFlOugMgpZ1DW0SFXDeC8o +Z6fPnf5vfqFVepA340w57hM+01h6/eERXHnHYr3oc8UR3UZUafiIZrQrc7LT4UuX +9FOv3ufQq8sYMVfoeYw1LLKJM3c9Wy7JwvPlYCjS9o1V6pLi5Bd0aoUCgYEA46hN +fOlV96Ho+WJZi5qouC1RRVc6V++XTowBXPpHv0j15tdaO5Y9Tja/rfWSnMLz8fY+ +Tj1yWo22hNkMdSl80zykE+OBnaTr4rLTiUEjacdntNCuEp/+27CavvlCexbZkfoi +b32Ktbltc+bWlSI4eYYcBbSAVt/L6DXIIQl1bzMCgYAFMEaT5RczATJDG0XYym4O +BdhpRnPV7PLhmqCSo0O6nuKVh0altUVRXzROoB5AH0LIQQLU7cagEtYqkGh04iy4 +E5okOLlT8dhfVxvTMjNBS7d1skw7ZLJ4gXOPO264iy7o6NzF8BjCBOs1PfEq45z7 +EP1XvHZZ4YxkhKYglhwz1QKBgGcDZiTKlMrb6cbG2QwRrJzCbM76nHzj/kxdj9RZ +sBN/WT3eXocuAYmdvnhh8bibgrUPHrxak58kFt3gNQHjBweynfAd9y21TcOj9ZJa +9kJMJ8Iq10m4OiOAs1UNBycZfNPQIrreTODUChHy91A+Tt22cIGoXpZw6ByoEWnZ +lNj/AoGADQW8aQ09UnciVBbisyef3FDwRczp93jRkaP0Xo10gouUqXfTqE8A4enW +335O6VFi2B/wRSC1vfkS/LoTLfJnU1lYAyqza3WS3VlATbG/PUrfcfycJbnKoG07 +839BtIf2Yhjc8j4YBgAUa5VlWCHUvCi3U2FJLzx7BALcUfpMEwI= +-----END RSA PRIVATE KEY----- diff --git a/deploy-manifests/charts/certs/jwt/jwt_private_key_pkcs8.pem b/deploy-manifests/charts/certs/jwt/jwt_private_key_pkcs8.pem new file mode 100644 index 0000000..4c9e224 --- /dev/null +++ b/deploy-manifests/charts/certs/jwt/jwt_private_key_pkcs8.pem @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDKivcJfoDpTgSh +IdrC0AuImgHQKQmdv/CZWRxVPkSY26kZWtVJ4mjzRkDGyB31LUJlVfFNe0nteOyq +fNHrhC+uf612+P0KTmT/pOenoegpT8BDEDe1DlmrDoPqKE87JVXjPhx0rnCPMQE0 ++Em5OOPM/hVDiHhWx5Y1t+FcYre9J6zyg2flbCiv2vVRsQk/9kwesMnEBzB7QY+9 +5sCoSng7llxO1aer7+qShQHrP/nYScIyW2g+a4wL6jd9Z0gIF/irvShIMKV+6EtW +LiZFPYrlRQfx+zER7qg+2S+T29UII5lGajQxeldmIip1k62BwHOf/SbOg13nwrF4 +jLSCKeN/AgMBAAECggEAVtWHHcHngJ6bK325LSZGm5TzTAwb/E6q1wO2OvGMNUCP +WbhwktGHjyzCXray6UczHQDgiAhgZHggduM2mFM+ogBJHSWYTo/XiyZmzp6CSxvO +4LGWQIBbfxOlCIGpnkDedqNNTdTvmuQ2kUAVU1yJhXw1H5Pli8bbpkIkUxhbj7Ms +mcSZS4Xaqj1jhOWoBzt1SZEpHgDZ4m8MEMBfjLu+/SQAIWGdJmyANdsU3V/f/Dmc +gSqu7oTFYZiEFyJqTRyCVHJmyIqAOAtqHkKnJcGfeurwUIuX5NVqdYhj/JM+3k8l +XDRyoyC0QADhnfR85uXV/OnXCVBC8GABuMP4DaiHyQKBgQDjwjtbVb/jQur2JYsS +DS0sZI3S4X929gWU66AyClnUNbRIVcN4Lyhnp8+d/m9+oVV6kDfjTDnuEz7TWHr9 +4RFcecdivehzxRHdRlRp+IhmtCtzstPhS5f0U6/e59CryxgxV+h5jDUssokzdz1b +LsnC8+VgKNL2jVXqkuLkF3RqhQKBgQDjqE186VX3oej5YlmLmqi4LVFFVzpX75dO +jAFc+ke/SPXm11o7lj1ONr+t9ZKcwvPx9j5OPXJajbaE2Qx1KXzTPKQT44GdpOvi +stOJQSNpx2e00K4Sn/7bsJq++UJ7FtmR+iJvfYq1uW1z5taVIjh5hhwFtIBW38vo +NcghCXVvMwKBgAUwRpPlFzMBMkMbRdjKbg4F2GlGc9Xs8uGaoJKjQ7qe4pWHRqW1 +RVFfNE6gHkAfQshBAtTtxqAS1iqQaHTiLLgTmiQ4uVPx2F9XG9MyM0FLt3WyTDtk +sniBc487briLLujo3MXwGMIE6zU98SrjnPsQ/Ve8dlnhjGSEpiCWHDPVAoGAZwNm +JMqUytvpxsbZDBGsnMJszvqcfOP+TF2P1FmwE39ZPd5ehy4BiZ2+eGHxuJuCtQ8e +vFqTnyQW3eA1AeMHB7Kd8B33LbVNw6P1klr2QkwnwirXSbg6I4CzVQ0HJxl809Ai +ut5M4NQKEfL3UD5O3bZwgahelnDoHKgRadmU2P8CgYANBbxpDT1SdyJUFuKzJ5/c +UPBFzOn3eNGRo/RejXSCi5Spd9OoTwDh6dbffk7pUWLYH/BFILW9+RL8uhMt8mdT +WVgDKrNrdZLdWUBNsb89St9x/JwlucqgbTvzf0G0h/ZiGNzyPhgGABRrlWVYIdS8 +KLdTYUkvPHsEAtxR+kwTAg== +-----END PRIVATE KEY----- diff --git a/deploy-manifests/charts/certs/jwt/jwt_public_key.pem b/deploy-manifests/charts/certs/jwt/jwt_public_key.pem new file mode 100644 index 0000000..7523d69 --- /dev/null +++ b/deploy-manifests/charts/certs/jwt/jwt_public_key.pem @@ -0,0 +1,9 @@ +-----BEGIN PUBLIC KEY----- +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyor3CX6A6U4EoSHawtAL +iJoB0CkJnb/wmVkcVT5EmNupGVrVSeJo80ZAxsgd9S1CZVXxTXtJ7XjsqnzR64Qv +rn+tdvj9Ck5k/6Tnp6HoKU/AQxA3tQ5Zqw6D6ihPOyVV4z4cdK5wjzEBNPhJuTjj +zP4VQ4h4VseWNbfhXGK3vSes8oNn5Wwor9r1UbEJP/ZMHrDJxAcwe0GPvebAqEp4 +O5ZcTtWnq+/qkoUB6z/52EnCMltoPmuMC+o3fWdICBf4q70oSDClfuhLVi4mRT2K +5UUH8fsxEe6oPtkvk9vVCCOZRmo0MXpXZiIqdZOtgcBzn/0mzoNd58KxeIy0ginj +fwIDAQAB +-----END PUBLIC KEY----- diff --git a/deploy-manifests/charts/certs/jwt/readme.md b/deploy-manifests/charts/certs/jwt/readme.md new file mode 100644 index 0000000..81ac267 --- /dev/null +++ b/deploy-manifests/charts/certs/jwt/readme.md @@ -0,0 +1,98 @@ +# readme.md + + +## 使用 openssl 生成 公私钥 + + +1. 生成私钥 App Private Key + +必须为 RSA2(SHA256) + +```bash +openssl genrsa -out jwt_private_key.pem 2048 +``` + +2. 将私钥转换为 PKCS8 格式 + +```bash +openssl pkcs8 -topk8 -inform PEM -in jwt_private_key.pem -outform PEM -nocrypt -out jwt_private_key_pkcs8.pem +``` + +3. 导出公钥 App Public Key + +```bash +openssl rsa -in jwt_private_key.pem -pubout -out jwt_public_key.pem +``` + +4. 将 jwt_public_key.pem 中的内容,去除换行和空格,转成字符串。 + +处理前: +```language +-----BEGIN PUBLIC KEY----- +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwow0APEh9F91vvtAzl7V +FmXRAOGhlo+22KX+rqC3ziGg4+yIk8evAL1T97XEuK1huqcAp+p4PIG2t/Rb3FBD ++vVJGoXKsyLCMUmT4Sy5/TRhb3TM0CHefvMZTSMwcVzKT07DtxyGgFZj9WsUYZWr +BUPcu0vD6s7m5Qe3qFJJWVeRX8NDnVAxySzrz4bI4+1qvtyey/uap3I6txxRxUlI +aMyTsD8pl63u14dD2FHRM6JY3tmdEpBEMWI91qmYbl9HkH/D6Xtumg0Hmzh06bdr +lO3YNscpr6iN2ug6yGNtAh4/ug4P4ZV9nxImcj8l8Pt3jio1O0IIpf4MUCMD+C7P +rQIDAQAB +-----END PUBLIC KEY----- +``` +处理后: +```language +-----BEGIN PUBLIC KEY----- +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwow0APEh9F91vvtAzl7VFmXRAOGhlo+22KX+rqC3ziGg4+yIk8evAL1T97XEuK1huqcAp+p4PIG2t/Rb3FBD+vVJGoXKsyLCMUmT4Sy5/TRhb3TM0CHefvMZTSMwcVzKT07DtxyGgFZj9WsUYZWrBUPcu0vD6s7m5Qe3qFJJWVeRX8NDnVAxySzrz4bI4+1qvtyey/uap3I6txxRxUlIaMyTsD8pl63u14dD2FHRM6JY3tmdEpBEMWI91qmYbl9HkH/D6Xtumg0Hmzh06bdrlO3YNscpr6iN2ug6yGNtAh4/ug4P4ZV9nxImcj8l8Pt3jio1O0IIpf4MUCMD+C7PrQIDAQAB +-----END PUBLIC KEY----- +``` + +4. 将 jwt_private_key_pkcs8.pem 中的内容,去除换行和空格,转成字符串。 + +处理前: +```language +-----BEGIN PRIVATE KEY----- +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDCjDQA8SH0X3W+ ++0DOXtUWZdEA4aGWj7bYpf6uoLfOIaDj7IiTx68AvVP3tcS4rWG6pwCn6ng8gba3 +9FvcUEP69UkahcqzIsIxSZPhLLn9NGFvdMzQId5+8xlNIzBxXMpPTsO3HIaAVmP1 +axRhlasFQ9y7S8PqzublB7eoUklZV5Ffw0OdUDHJLOvPhsjj7Wq+3J7L+5qncjq3 +HFHFSUhozJOwPymXre7Xh0PYUdEzolje2Z0SkEQxYj3WqZhuX0eQf8Ppe26aDQeb +OHTpt2uU7dg2xymvqI3a6DrIY20CHj+6Dg/hlX2fEiZyPyXw+3eOKjU7Qgil/gxQ +IwP4Ls+tAgMBAAECggEAaQOlTpza5z5gIKcfZEZsX5q2JvOkddE9sdRolXrLvMkK +P/39+0def9ey65OCjO2KQ2bCQ+Gc5YxfRQzySQpKp7yfqWFu+SNaD6DX4kRyYOtV +bQRvSin+ICi5D5pfG9IqooSxwLX1JHF9o4wZhFN17XGkRLWxG55zpE12JbXFQiPB +pck6hcMfx+r5wk7t4ret/8P/MDcyrPuUavJemd4D2jRrD7AmOGJDvElioFcOKA+V +S8oe/uBdpU8cbYJvct68fHOzG9IW3hdqYV18fhNtWqp9WeuUP+F2UMmOXbAtZ106 +Zcd+V/jsse2G9KvGzmDA61ZGxzHUjt+JNIpN+V2HQQKBgQDkfYb8vIMc2yV0CM30 +mAaPIapgpw8brYS8v+azQR/jjsuHFJ1CQJAih79y2gwdjKbDl0XByjj/qiHLTPcu +6dkuavdsV9MrlFfVqAXUMNDHrWEn5nMahlq3UZbflBqlavTr0gvEA8Da+ZXcRvWg +TP5+g5RFrKHJVOyQ+GzgDggQawKBgQDZ+IDRthf0UHvvZsoUbeb37Wut9jdjRgLJ +S1X4RtH+NPN23lvtTKJmUNfrFxiOfeVBfCXmGep0ibTqDVo0zBeHSu4BFM3BsICu +7xafmLafZxZqHcgWuF9keOCWjKN5fzub5xGqd2yge9hGN2zA2U9qp4mltGzeoZ/0 +TuLuR59GRwKBgCGga7ZUVANyKQ/rn8vod8am0LlKvMl4/vj8UQp+gh/uSvvFR+OR +NuUuDznq5y+OHJjacXS0uzC9LB4MZLBtz/2p1mIGhth6C3cxNDJnQMKyPIMvwi7c +KQujoU2kMUu48vSlw/+EAeT4KFrzwoBl9GpQGQkr/99udSZcuUE8L2mjAoGAPRLn +LVuDTL58a3D2sFC3BcLth/nUPSmxwCsutHlLf5ngme7l/RCa9GY0ibeX9t0JrpaV +m+qpCexH18jT/LUu5oa1N3JX0Kye8eUmBqPoj7N30VX06YDRobpI24Yei/19e0p8 +ZbI+qpzo1YvUGhkJqo21AMwUMTFCO1cbOL6yvyMCgYAHUNBLhSOaIZpvbmyh5uz5 +Va/IIYU5nJcVAan8ExzdVBqeiDqlIDsUt/4xoV2sWOK1lDmL1QYeOOTOHdVcSUyN +ZpvB3b/9RZ1bNQZA1trBBxjY7dXNwZZp0ah/bmO+i4dPXl+bU2mUqdyb1emFwcj0 +uNGn7GMQXLxalpCkz4SXRg== +-----END PRIVATE KEY----- +``` +处理后: +```language +-----BEGIN PRIVATE KEY----- +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDCjDQA8SH0X3W++0DOXtUWZdEA4aGWj7bYpf6uoLfOIaDj7IiTx68AvVP3tcS4rWG6pwCn6ng8gba39FvcUEP69UkahcqzIsIxSZPhLLn9NGFvdMzQId5+8xlNIzBxXMpPTsO3HIaAVmP1axRhlasFQ9y7S8PqzublB7eoUklZV5Ffw0OdUDHJLOvPhsjj7Wq+3J7L+5qncjq3HFHFSUhozJOwPymXre7Xh0PYUdEzolje2Z0SkEQxYj3WqZhuX0eQf8Ppe26aDQebOHTpt2uU7dg2xymvqI3a6DrIY20CHj+6Dg/hlX2fEiZyPyXw+3eOKjU7Qgil/gxQIwP4Ls+tAgMBAAECggEAaQOlTpza5z5gIKcfZEZsX5q2JvOkddE9sdRolXrLvMkKP/39+0def9ey65OCjO2KQ2bCQ+Gc5YxfRQzySQpKp7yfqWFu+SNaD6DX4kRyYOtVbQRvSin+ICi5D5pfG9IqooSxwLX1JHF9o4wZhFN17XGkRLWxG55zpE12JbXFQiPBpck6hcMfx+r5wk7t4ret/8P/MDcyrPuUavJemd4D2jRrD7AmOGJDvElioFcOKA+VS8oe/uBdpU8cbYJvct68fHOzG9IW3hdqYV18fhNtWqp9WeuUP+F2UMmOXbAtZ106Zcd+V/jsse2G9KvGzmDA61ZGxzHUjt+JNIpN+V2HQQKBgQDkfYb8vIMc2yV0CM30mAaPIapgpw8brYS8v+azQR/jjsuHFJ1CQJAih79y2gwdjKbDl0XByjj/qiHLTPcu6dkuavdsV9MrlFfVqAXUMNDHrWEn5nMahlq3UZbflBqlavTr0gvEA8Da+ZXcRvWgTP5+g5RFrKHJVOyQ+GzgDggQawKBgQDZ+IDRthf0UHvvZsoUbeb37Wut9jdjRgLJS1X4RtH+NPN23lvtTKJmUNfrFxiOfeVBfCXmGep0ibTqDVo0zBeHSu4BFM3BsICu7xafmLafZxZqHcgWuF9keOCWjKN5fzub5xGqd2yge9hGN2zA2U9qp4mltGzeoZ/0TuLuR59GRwKBgCGga7ZUVANyKQ/rn8vod8am0LlKvMl4/vj8UQp+gh/uSvvFR+ORNuUuDznq5y+OHJjacXS0uzC9LB4MZLBtz/2p1mIGhth6C3cxNDJnQMKyPIMvwi7cKQujoU2kMUu48vSlw/+EAeT4KFrzwoBl9GpQGQkr/99udSZcuUE8L2mjAoGAPRLnLVuDTL58a3D2sFC3BcLth/nUPSmxwCsutHlLf5ngme7l/RCa9GY0ibeX9t0JrpaVm+qpCexH18jT/LUu5oa1N3JX0Kye8eUmBqPoj7N30VX06YDRobpI24Yei/19e0p8ZbI+qpzo1YvUGhkJqo21AMwUMTFCO1cbOL6yvyMCgYAHUNBLhSOaIZpvbmyh5uz5Va/IIYU5nJcVAan8ExzdVBqeiDqlIDsUt/4xoV2sWOK1lDmL1QYeOOTOHdVcSUyNZpvB3b/9RZ1bNQZA1trBBxjY7dXNwZZp0ah/bmO+i4dPXl+bU2mUqdyb1emFwcj0uNGn7GMQXLxalpCkz4SXRg== +-----END PRIVATE KEY----- +``` + + +5. (可选)将pem内容进行 base64 编码后,配置到k8s + +echo -n '-----BEGIN PUBLIC KEY----- +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwow0APEh9F91vvtAzl7VFmXRAOGhlo+22KX+rqC3ziGg4+yIk8evAL1T97XEuK1huqcAp+p4PIG2t/Rb3FBD+vVJGoXKsyLCMUmT4Sy5/TRhb3TM0CHefvMZTSMwcVzKT07DtxyGgFZj9WsUYZWrBUPcu0vD6s7m5Qe3qFJJWVeRX8NDnVAxySzrz4bI4+1qvtyey/uap3I6txxRxUlIaMyTsD8pl63u14dD2FHRM6JY3tmdEpBEMWI91qmYbl9HkH/D6Xtumg0Hmzh06bdrlO3YNscpr6iN2ug6yGNtAh4/ug4P4ZV9nxImcj8l8Pt3jio1O0IIpf4MUCMD+C7PrQIDAQAB +-----END PUBLIC KEY-----' |base64 + + +echo -n '-----BEGIN PRIVATE KEY----- +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDCjDQA8SH0X3W++0DOXtUWZdEA4aGWj7bYpf6uoLfOIaDj7IiTx68AvVP3tcS4rWG6pwCn6ng8gba39FvcUEP69UkahcqzIsIxSZPhLLn9NGFvdMzQId5+8xlNIzBxXMpPTsO3HIaAVmP1axRhlasFQ9y7S8PqzublB7eoUklZV5Ffw0OdUDHJLOvPhsjj7Wq+3J7L+5qncjq3HFHFSUhozJOwPymXre7Xh0PYUdEzolje2Z0SkEQxYj3WqZhuX0eQf8Ppe26aDQebOHTpt2uU7dg2xymvqI3a6DrIY20CHj+6Dg/hlX2fEiZyPyXw+3eOKjU7Qgil/gxQIwP4Ls+tAgMBAAECggEAaQOlTpza5z5gIKcfZEZsX5q2JvOkddE9sdRolXrLvMkKP/39+0def9ey65OCjO2KQ2bCQ+Gc5YxfRQzySQpKp7yfqWFu+SNaD6DX4kRyYOtVbQRvSin+ICi5D5pfG9IqooSxwLX1JHF9o4wZhFN17XGkRLWxG55zpE12JbXFQiPBpck6hcMfx+r5wk7t4ret/8P/MDcyrPuUavJemd4D2jRrD7AmOGJDvElioFcOKA+VS8oe/uBdpU8cbYJvct68fHOzG9IW3hdqYV18fhNtWqp9WeuUP+F2UMmOXbAtZ106Zcd+V/jsse2G9KvGzmDA61ZGxzHUjt+JNIpN+V2HQQKBgQDkfYb8vIMc2yV0CM30mAaPIapgpw8brYS8v+azQR/jjsuHFJ1CQJAih79y2gwdjKbDl0XByjj/qiHLTPcu6dkuavdsV9MrlFfVqAXUMNDHrWEn5nMahlq3UZbflBqlavTr0gvEA8Da+ZXcRvWgTP5+g5RFrKHJVOyQ+GzgDggQawKBgQDZ+IDRthf0UHvvZsoUbeb37Wut9jdjRgLJS1X4RtH+NPN23lvtTKJmUNfrFxiOfeVBfCXmGep0ibTqDVo0zBeHSu4BFM3BsICu7xafmLafZxZqHcgWuF9keOCWjKN5fzub5xGqd2yge9hGN2zA2U9qp4mltGzeoZ/0TuLuR59GRwKBgCGga7ZUVANyKQ/rn8vod8am0LlKvMl4/vj8UQp+gh/uSvvFR+ORNuUuDznq5y+OHJjacXS0uzC9LB4MZLBtz/2p1mIGhth6C3cxNDJnQMKyPIMvwi7cKQujoU2kMUu48vSlw/+EAeT4KFrzwoBl9GpQGQkr/99udSZcuUE8L2mjAoGAPRLnLVuDTL58a3D2sFC3BcLth/nUPSmxwCsutHlLf5ngme7l/RCa9GY0ibeX9t0JrpaVm+qpCexH18jT/LUu5oa1N3JX0Kye8eUmBqPoj7N30VX06YDRobpI24Yei/19e0p8ZbI+qpzo1YvUGhkJqo21AMwUMTFCO1cbOL6yvyMCgYAHUNBLhSOaIZpvbmyh5uz5Va/IIYU5nJcVAan8ExzdVBqeiDqlIDsUt/4xoV2sWOK1lDmL1QYeOOTOHdVcSUyNZpvB3b/9RZ1bNQZA1trBBxjY7dXNwZZp0ah/bmO+i4dPXl+bU2mUqdyb1emFwcj0uNGn7GMQXLxalpCkz4SXRg== +-----END PRIVATE KEY-----' |base64