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

Cha*_*ich 3 apache bash ubuntu ssl passphrase

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

#!/bin/bash
echo "mypassphrase"
Run Code Online (Sandbox Code Playgroud)

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

我试着像这样将我的密码添加到我的.bashrc 中export SSL_PASSPHRASE=mypassphrase

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

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

#!/bin/bash
echo $SSL_PASSPHRASE
Run Code Online (Sandbox Code Playgroud)

执行./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
Run Code Online (Sandbox Code Playgroud)

Nic*_*500 5

.bashrc 配置您的环境。

Apache 有时配置sudo为绑定低于 1024 的端口。并且您可能有UserGroup指令定义Apache 启动后将切换到哪个用户。

所有这一切都是为了说明您的 Apache 运行在与您的用户不同的环境中。它无权访问变量。

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

  • 感谢您的澄清,正如您所说,我将变量的位置更改为“$APACHE_ROOT/bin/envvars”,但我面临着同样的问题和同样的错误。请注意,我正在使用 `sudo systemctl (start/stop/restart/status)` apache2 来管理我的 Apache 服务器。 (2认同)