bash - 将密码短语添加到环境变量 (bashrc) 以便在重新启动 Apache 服务器时使用

标签 bash apache ubuntu ssl passphrase

目前我在 /etc/apache2/上使用 "SSLPassPhraseDialog exec:/path/to/pass-phrase.sh" mods-enabled/ssl.conf 文件

#!/bin/bash
echo "mypassphrase"

当我重新启动或启动我的 apache 服务器时一切正常。

我试图将我的密码短语添加到我的 .bashrc 中,就像这样 export SSL_PASSPHRASE=mypassphrase

并获取 .bashrc 文件 source ~/.bashrc

之后我将 pass-phrase.sh 更改为

#!/bin/bash
echo $SSL_PASSPHRASE

执行 ./path/to/pass-phrase.sh 结果到 mypassphrase

但是当我尝试重新启动我的 Apache 服务器时,发生了与密码相关的错误

> [Mon Dec 16 22:56:59.611824 2019] [ssl:emerg] [pid 19314] AH02580:
> Init: Pass phrase incorrect for key mysub.myinstance.com:443:0 [Mon Dec
> 16 22:56:59.611883 2019] [ssl:emerg] [pid 19314] SSL Library Error:
> error:0D0680A8:asn1 encoding routines:asn1_check_tlen:wrong tag [Mon
> Dec 16 22:56:59.611892 2019] [ssl:emerg] [pid 19314] SSL Library
> Error: error:0D08303A:asn1 encoding
> routines:asn1_template_noexp_d2i:nested asn1 error [Mon Dec 16
> 22:56:59.611898 2019] [ssl:emerg] [pid 19314] SSL Library Error:
> error:0D0680A8:asn1 encoding routines:asn1_check_tlen:wrong tag [Mon
> Dec 16 22:56:59.611905 2019] [ssl:emerg] [pid 19314] SSL Library
> Error: error:0D07803A:asn1 encoding
> routines:asn1_item_embed_d2i:nested asn1 error (Type=RSAPrivateKey)
> [Mon Dec 16 22:56:59.611912 2019] [ssl:emerg] [pid 19314] SSL Library
> Error: error:04093004:rsa routines:old_rsa_priv_decode:RSA lib [Mon
> Dec 16 22:56:59.611937 2019] [ssl:emerg] [pid 19314] SSL Library
> Error: error:0D0680A8:asn1 encoding routines:asn1_check_tlen:wrong tag
> [Mon Dec 16 22:56:59.611947 2019] [ssl:emerg] [pid 19314] SSL Library
> Error: error:0D07803A:asn1 encoding
> routines:asn1_item_embed_d2i:nested asn1 error
> (Type=PKCS8_PRIV_KEY_INFO) [Mon Dec 16 22:56:59.613065 2019]
> [ssl:emerg] [pid 19314] AH02564: Failed to configure encrypted (?)
> private key mysub.myinstance.com:443:0, check
> /etc/apache2/ssl/mykey.key

最佳答案

.bashrc 配置您的环境。

Apache 有时配置了 sudo 来绑定(bind)低于 1024 的端口。您可能有 UserGroup 指令来定义哪个用户Apache 将切换到一旦启动。

所有这些都表明您的 Apache 运行在与您的用户不同的环境中。它无权访问变量。

放置此类变量的“正确”位置是在 $APACHE_ROOT/bin/envvars 中。

关于bash - 将密码短语添加到环境变量 (bashrc) 以便在重新启动 Apache 服务器时使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59365437/

相关文章:

linux - 使用 inotifywait 并行处理两个文件

bash - 仅从文件名中删除最后一个扩展名

linux - 我怎样才能 'pad out' bash 中的 CSV 文件?

Java Spring WS 客户端 - tomcat 或 apache 干扰?

python - 安装pybind11后"No module named pybind11"

linux - <() 在 Bash 中做什么?

java - 使用 `Replace()` 方法不会替换 Apache POI 中的文本

javascript - 将文件从 Apache 提供给 Javascript

linux - 编译时 Ubuntu 14.04 中的 Oracle Developer Studio : Cannot find sys/cdefs. h

oracle - 权限被拒绝 - Oracle 12c