새 인증서가 설치되어 있어도 Apache에서 만료 된 인증서를 사용하고있는 것 같습니다


15

아파치 2.2.3 / mod_ssl / CentOS 5.5 VPS

인증서는 2011-10-06에 만료되었으며 새 인증서를 올바르게 설치 한 것으로 보이지만 사이트를 탐색하면 여전히 만료 된 인증서가 표시됩니다! 브라우저 캐시를 삭제하고 여러 다른 브라우저를 사용해 보았습니다. ssl.conf 파일의 관련 줄 (주석은 제외했습니다) :

Listen 127.0.0.1:443
SSLSessionCache         shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout  300
# Note - I tried disabling SSLSessionCache with the "none" setting but it didn't help.
<VirtualHost 127.0.0.1:443>
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /var/certs/gentlemanjoe.com/new2011/gentlemanjoe.com.crt
SSLCertificateKeyFile /var/certs/gentlemanjoe.com/new2011/gentlemanjoe.com.key
SSLCertificateChainFile /var/certs/gentlemanjoe.com/new2011/gd_bundle.crt
SetEnvIf User-Agent ".*MSIE.*" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0
CustomLog logs/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
ServerAdmin webmaster@donotemailme.com
DocumentRoot /var/www/gentlemanjoe.com
ServerName gentlemanjoe.com
<Directory /var/www/gentlemanjoe.com>
    AllowOverride All
    Order deny,allow
    allow from all
</Directory>          
</VirtualHost>

내가 확인한 것들

먼저 이전 인증서와 키 파일을 완전히 다른 폴더로 이동하여 Apache가 여전히 어쨌든 잡고 있지 않은지 확인했습니다. 아무것도 바뀌지 않았다. 재미로 새 인증서와 키 파일의 이름을 일시적으로 바꾸려고했지만 Apache는 정중하게 불평하고 시작을 거부했습니다.

그런 다음 잘못된 구성 파일을 편집하여 바보짓을 당하지 않도록 노력했습니다. "locate"를 사용하여 /etc/httpd/conf/httpd.conf 아래에 하나의 httpd.conf 파일 만 찾았습니다. 또한 "locate"를 사용하여 하나의 ssl.conf 파일 인 /etc/httpd/conf.d/ssl.conf 만 있는지 확인했습니다. 키 파일은 GoDaddy가 CSR 생성을 위해 준 지침에 따라 OpenSSL을 사용하여 생성 한 것입니다.

test.html 파일을 /var/www/gentlemanjoe.com 폴더에 업로드하고 찾아 볼 수 있는지 확인하여 올바른 사이트로 작업하고 있음을 확인했습니다. 그러나 HTTPS에서 테스트 파일을 보려고하면 동일한 인증서 만료 경고가 나타납니다.

인증서 자체에 올바른 만료 날짜가 있는지 확인했습니다.

openssl x509 -in /var/certs/gentlemanjoe.com/new2011/gentlemanjoe.com.crt -noout -text

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            07:e7:49:69:97:96:16
        Signature Algorithm: sha1WithRSAEncryption
        Issuer: C=US, ST=Arizona, L=Scottsdale, O=GoDaddy.com, Inc., OU=http://certificates.godaddy.com/repository, CN=Go Daddy Secure Certification Authority/serialNumber=07969287
        Validity
            Not Before: Oct 21 17:37:55 2011 GMT
            Not After : Oct  8 21:16:03 2013 GMT
        Subject: C=CA, ST=BC, L=Burnaby, O=Diamond Bailey Consolidated Commercial Services Ltd, OU= , CN=www.gentlemanjoe.com

새로운 CSR로 GoDaddy에서 인증서를 다시 입력하려고 시도했지만 모든 것이 작동하는 것처럼 보이지만 브라우저에서 동일한 결과를 얻습니다.

가능한 단서 # 1

"apachectl restart"를 수행 할 때마다 error_log 파일에 다음이 표시됩니다.

[Fri Oct 21 18:03:33 2011] [notice] SIGHUP received.  Attempting to restart
[Fri Oct 21 18:03:33 2011] [notice] Digest: generating secret for digest authentication ...
[Fri Oct 21 18:03:33 2011] [notice] Digest: done
[Fri Oct 21 18:03:33 2011] [info] APR LDAP: Built with OpenLDAP LDAP SDK
[Fri Oct 21 18:03:33 2011] [info] LDAP: SSL support available
[Fri Oct 21 18:03:33 2011] [info] Init: Seeding PRNG with 256 bytes of entropy
[Fri Oct 21 18:03:33 2011] [info] Init: Generating temporary RSA private keys (512/1024 bits)
[Fri Oct 21 18:03:33 2011] [info] Init: Generating temporary DH parameters (512/1024 bits)
[Fri Oct 21 18:03:33 2011] [info] Shared memory session cache initialised
[Fri Oct 21 18:03:33 2011] [info] Init: Initializing (virtual) servers for SSL
[Fri Oct 21 18:03:33 2011] [warn] RSA server certificate CommonName (CN) `www.gentlemanjoe.com' does NOT match server name!?
[Fri Oct 21 18:03:33 2011] [info] Server: Apache/2.2.3, Interface: mod_ssl/2.2.3, Library: OpenSSL/0.9.8e-fips-rhel5
[Fri Oct 21 18:03:34 2011] [notice] Apache/2.2.3 (CentOS) configured -- resuming normal operations
[Fri Oct 21 18:03:34 2011] [info] Server built: Aug 30 2010 12:28:40

GoDaddy 기술은 www 대 비 www가 중요 하지 않다고 말하며 브라우저의 보안 경고 가 서버 이름 불일치에 대해 불평하지 않고 만료 되어 오래된 인증서가 여전히 있음을 나타냅니다. 어떻게 든로드됩니다.

가능한 단서 # 2

http://gentlemanjoe.com 의 HTTP 서버 응답 헤더에 "Apache"가 아닌 "Andromeda"가 표시됩니다. "Andromeda"의 인터넷 검색으로 인해이 서버에 설치되지 않은 미디어 서버 유형 프로젝트가 표시되기 때문에 이상하게 보입니다. 그러나이 중 하나도 설정하지 않았으므로 확실하게 말할 수는 없습니다. , 일반적인 관리자 / 개발자가 휴가 중이며 친구와 함께 친구를 돕고 있습니다.) 또한 httpd.conf 파일에는 "Andromeda"라는 문자열이 포함되어 있지 않으므로이를 수정하기 위해 수정되지 않았 음을 나타냅니다. 그가 사용하고있는 Magento 전자 상거래 플랫폼 일 수도 있지만 표준 Apache 응답 헤더를 대체하는 요점은 무엇입니까?


이 오류는 무엇입니까 : RSA 서버 인증서 CommonName (CN)`www.gentlemanjoe.com '이 서버 이름과 일치하지 않습니다!?
mdpc

정말 있는지, 내가 아니에요 생각 이 www.gentlemanjoe.com이 gentlemanjoe.com 일치하지 않음을 불평하지만, 사이트가 여전히 만료 된 인증서를 사용하는 이유는 설명하지 않습니다. 일반적인 이름 / 서버 이름 불일치 오류 인 경우 브라우저 보안 경고에 해당 내용이 반영되지 않습니까? 새 인증서는 만료 된 것으로 표시되지 않지만 이름 불일치에 대해 다른 경고가 표시됩니까?
Jordan Rieger

답변:


17

아파치 앞에 뭔가가있다. 해당 구성을 확인하십시오.

Listen 127.0.0.1:443
....
<VirtualHost 127.0.0.1:443>

로컬 호스트에서만 청취하므로 인터넷 클라이언트는이 서비스에 직접 영향을 미치지 않습니다. 프록시가 될 수 있습니다.

Apache가 올바른 인증서를로드하고 있는지 확인하려면 Apache 리스너에서 직접 서비스를 누르십시오. openssl s_client -connect 127.0.0.1:443 -showcerts

Andromeda 헤더에 대해 잘 모르므로 프로세스를 찾으십시오 lsof -i.

아파치는 127.0.0.1:443다른 서비스 0.0.0.0:443(혹은 VPS의 공개 주소 :443)를 가지고 있지만 새로운 인증서가 필요한 것이다.


예! 매우 논리적 인 셰인 감사합니다. 소년 이것은 힘든 일이었습니다. 프로세스는 nginx라는 프록시 서버로 판명되었습니다. 내가 알지 못하는 IP 주소를 듣고 서버와 연결된 다음 HTTPS 및 HTTP 요청을 Apache 로 릴레이 합니다. 나는 마지막 사람이 왜 이것이 좋은 생각이라고 생각했는지 전혀 알지 못합니다. 그것은 무의미한 성능 돼지처럼 보입니다. 그리고 nginx는 GoDaddy가 제공 한 인증서를 서버 인증서와 권한 체인을 하나의 파일에 특정 순서로 놓기 위해 다시 포맷해야했습니다. 어쨌든, 지금 작동합니다! 감사합니다!
Jordan Rieger

2
@JordanRieger 잘 듣습니다! nginx는 일반적으로 Apache보다 가볍고 빠르다고 간주되므로 내부에서 일부 요청 (예 : 정적 컨텐츠)을 처리하고 특정 요청의 서브 세트 만 Apache로 전달하는 경우에 해당 될 수 있습니다. 모든 것을 아파치에 보내면 성능이 낭비됩니다.
Shane Madden

우리의 경우에는 AWS ELB였습니다.
Akshay

0

이 문제의 일반적인 원인은 여러 개의 실행중인 Apache 인스턴스입니다. 구성 변경은 사용자가 다시 시작하는 프로세스에 의해 선택되지만 요청은 이전 구성으로 실행중인 이전 프로세스에서 제공됩니다.

서비스를 중지하십시오 :

service apache2 stop

사이트에 여전히 액세스 할 수 있는지 확인하십시오. 그렇다면, 원인을 확인한 것입니다.

이제 실행

ps aux | grep apache

실행중인 apache2 프로세스 및 PID 목록을 제공합니다. 모두 종료 (참고 :이 명령은 Apache Tomcat과 같이 이름 / 사용자 등에서 Apache와 관련이없는 프로세스를 리턴 할 수도 있습니다. 종료하지 않을 수도 있습니다.)

kill <pid>

ps aux를 다시 실행하고 프로세스가 더 이상 실행되고 있지 않은지 확인하십시오.

사이트에 액세스 할 수 있는지 다시 확인하십시오. 해서는 안됩니다.

이제 아파치 서비스를 시작하십시오

service apache2 start

새 인증서가 제공되고 있는지 확인하십시오.

프로세스를 종료하지 않으려면 시스템을 재부팅하십시오. 같은 효과가 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.