如何自定义秘钥对儿
一般来说,这种管理平台都是内网部署,因此不建议你折腾秘钥对儿这个事儿,会比较折腾。
有朋友在部署项目的时候,想要自定义加密认证的秘钥对,本来来讲下如何配置。
此问题首问于:https://github.com/eryajf/go-ldap-admin/issues/135 (opens new window)
# 哪里用到了
要想自定义秘钥对,首先我们需要知道哪里用到了,这样正确地配置自定义的秘钥,从而正常使用。
# 前端
有的同学只替换了后端,导致请求的时候,用户密码验证失败,其实前端也用到了,用到了公钥,从而用户在登陆的时候,前端发给后端的请求中,能够将用户密码加密传输,而非明文传输。
前端的 .env.development
配置文件中存储:
VUE_APP_PUBLIC_KEY="-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC7DSaq24RM3FdYQumg7DQPpif8sS6HOjtNAGhUN8oW9Gh4aIRZICxUi3RMywGZPZJiw6hAgnEKBYr3YbqcMgiaMvybyUCBR8tjtNx+vh8dg8b/5C/jmjk5tQg9bKG78LF+xdpbWIi/5RvMP8k6S2DID/z97s9yW8d3K8j/IUWhgwIDAQAB-----END PUBLIC KEY-----"
1
当然线上的话,文件应该是 .env.production
。
** 注意:
** 如上配置存储的是公钥内容,可以将公钥内容合并成单行作为一个字符串,放到配置文件当中。
# 后端
在后端中,默认读取如下两个配置文件:
config/go-ldap-admin-pub.pem
config/go-ldap-admin-priv.pem
1
2
2
那么新的秘钥对就要替换如上两个文件的内容。
要注意这两个文件不是静态读取,而是会被编译进二进制,因此你需要在项目源码中,替换这两个文件内容,然后重新编译项目,才能把新的内容编译到二进制当中。另外,因为要重新编译后端,那么前端的 dist 文件也需要重新构建,因此需要先完成前端的配置,再进行后端的调整。
# 如何自定义
通过如下两条命令可以生成自定义的秘钥对:
$ openssl genrsa -out go-ldap-admin-priv.pem 1024
$ openssl rsa -in go-ldap-admin-priv.pem -pubout -out go-ldap-admin-pub.pem
1
2
2
然后把生成的两个文件替换后端的两个配置文件,把公钥的内容,配置到前端的配置文件中,然后重新部署项目。
# 注意事项
自定义秘钥的过程中,有以下注意事项:
- 前后端配置文件中的秘钥对一定要对应上,否则会在登陆的时候出现密码校验失败的情况。
- 配置完自定义的秘钥对之后,需要把数据库清空,让数据基于新的秘钥重新初始化,否则数据库存储的基于老秘钥加密的密码,用新的秘钥验证的时候,仍然会报密码验证失败的情况。
- 另外需要注意的就是,自定义秘钥之后,就不能再使用项目后续更新的前后端镜像,而需要自己构建镜像来进行更新了。
帮助我们改善此页面 (opens new window)
上次更新: 2024/04/05, 20:20:36