【发布时间】:2019-10-16 18:44:17
【问题描述】:
如果管道的阶段执行应该解密密钥文件的脚本,GitLab Runner 会失败:
$ scripts/decrypt.sh $LWCMAP_SERVER_KEY
bad decrypt
139810674749504:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:../crypto/evp/evp_enc.c:536:
ERROR: Job failed: exit code 1
$LWCMAP_SERVER_KEY 包含一个密码短语,用于解密文件夹内的密钥,在.gitlab-ci.yml 中使用以下命令:
- scripts/decrypt.sh $LWCMAP_SERVER_KEY
而shell脚本的内容就是解密文件的OpenSSL命令:
openssl aes-256-cbc -k $1 -in assets/server.key.enc -out assets/decripted_server.key -d
我想知道为什么作业因“解密错误”而失败,因为完全相同的命令在本地执行得很好。我什至计算了文件和解密时使用的密钥的 md5,它们在运行器和本地完全相同(这意味着它不是损坏的数据)。
有什么想法吗?
编辑:
本地openssl version 输出“LibreSSL 2.8.3”,在服务器上,我将其升级到相同版本。不过,在 Runner 的容器上,输出是“OpenSSL 1.1.0j 20 Nov 2018”。
【问题讨论】:
-
就在我以为我终于看到了解决方案的时候,没有答案:-(
标签: encryption openssl gitlab gitlab-ci-runner