아니다, 위말은 그것(Apache-SSL)이 사람들이 원하는 만큼 잘 작동한다는 뜻이다. 우리는 고쳐져야 할 버그가 있을때와 새 버전의 Apache(이하 아파치)가 나올때, 또는 누군가가 새로운 기능을 원할때만 업데이트 한다.
https:
대신에 http:
를 사용했기 때문이다.
또, 에러 로그에서 다음 메시지를 본게 된다면 역시 위와같은 이유에서다.
SSL_Accept failed error:140760EB:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol
다음과 같은 결과를 얻는다면,
$patch < SSLpatch Looks like a new-style context diff. File to patch:아마 옛날 버전의 patch를 가지고 있을 것이다. 2.1 이상의 버전으로 바꾸고 다시 시도하라.
당신은 HTTPS를 아무 포트에서나 돌릴 수 있지만, 대부분의 브라우저가 기본으로 찾는 표준 포트는 443이다. 너(헉.. 언제부터.. --;)는 다음과 같이 URL에 포트번호를 지정해서 브라우저가 강제로 찾도록 할 수 있다.
https://secure.server.hell:666
두가지 방법이 있다. 두개의 서버 대몬을 돌리거나, 한 대몬에서 두가지 서비스를 동시에 하거나. 두 대몬를 돌리는 좋은 이유가 있더라도, 보통 가장 간단하게 한 서버를 돌리고 SSL이 필요없는 부분은 가상호스트(virtual host)로 그 기능을 꺼버리면 된다. 만약 두개의 대몬을 돌리고 싶다면 각 서버가 정해진 포트(보통 비보안은 포트 80, 보안은 443) 하고만 연결 되도록 해야 한다. 하나의 서버만 돌리고 싶다면, 어떻게 설정하는지 여기 예제 설정 파일이 있다.
단계 하나 - 키(key)와 요청(request, 청, 청구.. 머야.. --;)를 만들어라.
openssl req -new > new.cert.csr
단계 둘 - 키에서 패스문(passphrase)를 지워라(선택사항이다).
openssl rsa -in privkey.pem -out new.cert.key
단계 셋 - 요청(request)을 서명된 증명(cert)으로 바꿔라.(바꿔, 바꿔, ^^;)
openssl x509 -in new.cert.csr -out neww.cert.cert -req -signkey new.cert.key -days 365
위 결과를 Apache-SSL의 지시자로 다음과 같이 사용한다.
SSLCertificateFile /path/to/certs/new.cert.cert SSLCertificateKeyFile /path/to/certs/new.cert.key
단계 하나 - 위 처럼 CA 증명/키 쌍을 만든다.
단계 둘 - CA 키로 고객 요청에 서명한다.
openssl x509 -req -in client.cert.csr -out client.cert.cert -signkey my.CA.key -CA my.CA.cert -CAkey my.CA.key -CAcreateserial -days 365
단계 셋 - 'client.cert.cert' 파일을 요청하는이에게 넘겨주라.
Apache-SSL은 다음을 추가 함으로써 이 증명서의 확인이 가능하다.
SSLCACertificateFile /path/to/certs/my.CA.cert SSLVerifyClient 2
릴리즈 apache_1.3.2+ssl_1.27 이상에서는 다음 지시자를 사용한다.
SSLExportClientCertificates이것은 클라이언트 증명의 내용을 포함하는 환경변수를 만들게 된다. 더 자세한 것은, docs 섹션의 SSLExportClientCertificates를 보라. 작동 예제도 있다: https://www.apache-ssl.org/cgi/cert-export
Bertrand Renuart가 이에 대한 자세한 내용을 http://www.itma.lu/howto/apache에서 기술하고 있다.
Apache-SSL 명령에서 Verisign은 지원되지 않기 때문이다. 사용하고 싶다면 Stronghold(상용 아파치 기반 SSL 지원 서버)를 사용해라. 당신이 해야 할 일은 단지 증명을 파일에 저장하고 그 이름을 SSLCertificateFile지시자에 넘겨주면 된다. 키파일도 넘겨야 하는걸 기억해라.
gcc -c -I../os/unix -I../include -I/usr/local/ssl/include -funsigned-char -DTARGET=\"httpsd\" -DAPACHE_SSL `../apaci` -DAPACHE_SSL buff.c buff.c: In function `ap_read': buff.c:259: structure has no member named `stats' buff.c:267: structure has no member named `stats' buff.c:268: structure has no member named `stats' buff.c:269: structure has no member named `stats' buff.c:271: structure has no member named `stats' buff.c: In function `ap_write': buff.c:346: warning: passing arg 2 of `SSL_write' discards `const' from pointer target type *** Error code 1OpenSSL을 업그레이드 해야 한다.
Apache-SSL 하부의 컴포넌트에는 날짜관련 처리가 없어서 당신 시스템의 전체적인 컴플라이언스(compliance)엔 영향을 받지 않는다. 메인 컴포넌트인 아파치는 Y2K에 대해서 이렇게 이야기 하고 있다. 또한 당신은 OS, 하드웨어와 다른 모듈을 검사해야 한다.