CentOS7의 Apache 서버가 다시 시작된 후 갑자기 작동이 중지되었습니다.
유효한 CA에서 얻은 .crt 및 .key 와일드카드 인증서를 사용하여 SSL을 구성했습니다.
httpd 서비스를 다시 시작하면 오류는 없지만 웹 페이지가 로드되지 않습니다.
내 서버가 포트 443 및 80에서 수신 대기하고 있음을 확인했습니다.
# netstat -tlnup | grep httpd
tcp6 0 0 :::80 :::* LISTEN 6186/httpd
tcp6 0 0 :::443 :::* LISTEN 6186/httpd
Apache를 다시 시작할 때마다 error_log에 다음이 표시됩니다.
[ssl:warn] [pid 6186] AH02292: Init: 이름 기반 SSL 가상 호스트는 TLS 서버 이름 표시 지원(RFC 4366)이 있는 클라이언트에서만 작동합니다.
하지만 내 인증서의 CN은 실제로 와일드카드입니다.
# openssl x509 -in /etc/pki/tls/certs/domain.com.crt -noout -subject
subject= ********************* O= ************ OU=************ OU=***************** CN=*.domain.com
내 apacheconf 파일은 다음과 같습니다.
ServerName my.domain.com
<VirtualHost *:80>
ServerAlias *.domain.com
Redirect / https://my.domain.com/
</VirtualHost>
<VirtualHost *:443>
ServerAlias *.domain.com
DocumentRoot /var/www/html/glpi
ErrorLog /var/log/httpd/glpi.log
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/domain.com.crt
SSLCertificateKeyFile /etc/pki/tls/private/domain.com.key
</VirtualHost>
로컬 컬 테스트를 수행하면 다음이 있습니다.
# curl https://localhost
curl: (60) Peer's Certificate issuer is not recognized.
# curl -k https://localhost
Answer OK
# curl -v https://localhost
* About to connect() to localhost port 443 (#0)
* Trying ::1...
* Connected to localhost (::1) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
* Server certificate:
* subject: CN=*.domain.com,OU=*************************
* common name: *.domain.com
* issuer: CN=Trusted Secure Certificate Authority
* NSS error -8179 (SEC_ERROR_UNKNOWN_ISSUER)
* Peer's Certificate issuer is not recognized.
* Closing connection 0
curl: (60) Peer's Certificate issuer is not recognized.
More details here: http://curl.haxx.se/docs/sslcerts.html
curl performs SSL certificate verification by default, using a "bundle"
of Certificate Authority (CA) public keys (CA certs). If the default
bundle file isn't adequate, you can specify an alternate file
using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
the bundle, the certificate verification probably failed due to a
problem with the certificate (it might be expired, or the name might
not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
the -k (or --insecure) option.
오류는 어디에 있으며 재부팅하기 전에 작동하는 이유는 무엇입니까?