CentOS7 Apacheに複数SSLを設定したら再起動エラー
以前はdomain1のみで正常に動作しておりました。
いろんなサイトを見て、複数SSLを設置してみようと
下記のようにしてみたところ
systemctl restart httpd
Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.
systemctl status http
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since 水 2019-05-22 17:05:30 JST; 21s ago
Docs: man:httpd(8)
man:apachectl(8)
Process: 12625 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
Process: 7140 ExecReload=/usr/sbin/httpd $OPTIONS -k graceful (code=exited, status=0/SUCCESS)
Process: 12623 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
Main PID: 12623 (code=exited, status=1/FAILURE)
5月 22 17:05:30 ******.vs.sakura.ne.jp httpd[12623]: In order to read them you have to provide the pass phrases.
5月 22 17:05:30 ******.vs.sakura.ne.jp httpd[12623]: Server ******.vs.sakura.ne.jp:443 (RSA)
5月 22 17:05:30 ******.vs.sakura.ne.jp httpd[12623]: Enter pass phrase:Apache:mod_ssl:Error: Private key not found.
5月 22 17:05:30 ******.vs.sakura.ne.jp httpd[12623]: **Stopped
5月 22 17:05:30 ******.vs.sakura.ne.jp systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
5月 22 17:05:30 ******.vs.sakura.ne.jp kill[12625]: kill: cannot find process ""
5月 22 17:05:30 ******.vs.sakura.ne.jp systemd[1]: httpd.service: control process exited, code=exited status=1
5月 22 17:05:30 ******.vs.sakura.ne.jp systemd[1]: Failed to start The Apache HTTP Server.
5月 22 17:05:30 ******.vs.sakura.ne.jp systemd[1]: Unit httpd.service entered failed state.
5月 22 17:05:30 ******.vs.sakura.ne.jp systemd[1]: httpd.service failed.
このような状態です。
個人的には、「Enter pass phrase:Apache:mod_ssl:Error: Private key not found.」これが引っかかってるのですが。
修正のやり方がわからない状況です。
どなたか、教えていただけませんか。
vhost.confの中身
SSLPassPhraseDialog builtin
SSLSessionCache shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout 300
#SSLMutex default
SSLRandomSeed startup file:/dev/urandom 256
SSLRandomSeed connect builtin
SSLCryptoDevice builtin
#domain1
<VirtualHost *:443>
SSLEngine on
SSLProtocol all -SSLv2
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key
SSLCertificateChainFile /etc/httpd/conf/ssl.crt/internal.crt
SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
DocumentRoot /var/www/html/domain1
ServerName domain1:443
AddDefaultCharset UTF-8
<Directory "/var/www/html/domain1">
AllowOverride All
Options Indexes FollowSymLinks
</Directory>
</VirtualHost>
<VirtualHost *:443>
# SSLEngine on
# SSLProtocol all -SSLv2
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server_domain2.key
SSLCertificateChainFile /etc/httpd/conf/ssl.crt/internal_domain2.crt
SSLCertificateFile /etc/httpd/conf/ssl.crt/server_domain2.crt
# DocumentRoot /var/www/html/domain2
# ServerName domain2:443
# AddDefaultCharset UTF-8
# <Directory "/var/www/html/domain2">
# AllowOverride All
# Options Indexes FollowSymLinks
# </Directory>
</VirtualHost>
1つ目のが最初に設定しており、正常に動作しておりました。
2つ目のが追加した分で、現在「#」でコメントにしているところを1行でもコメントを外すとエラーがでます。
5/23 追記
環境
・CentOS Linux release 7.2.1511 (Core)
・Server version: Apache/2.4.6 (CentOS)
・Server built: Nov 5 2018 01:47:09
・PHP 7.1.26
SSLPassPhraseDialogのところですが、対話に出来なかったので
現在は、「SSLPassPhraseDialog exec:/etc/ssl/certs/pass_ssl.sh」のように変更してまして
#!/bin/sh
case $1 in
domain1:443);;
domain2:443)
echo 'パスワード';;
esac
exit 0
のようになっております。
domain1はパスワードを設定していないので、これでいいのかわかりませんが・・・・
5/24 解決
@Sieg、@take88
の情報を元に、色々と調べてserver_****.keyのパスフレーズを解除したら
すんなりと再起動でき、解決できました!!
ありがとうございます!
server_****.keyのパスフレーズ解除は
openssl rsa -in /etc/httpd/conf/ssl.key/server_****.key -out /etc/httpd/conf/ssl.key/server_****.key