다음 이전 차례

10. FAQ

10.1 Apache-SSL 은 한동안 업데이트 되지 않았다 - 이건 낡았다(out-of-date)는 말인가?

아니다, 위말은 그것(Apache-SSL)이 사람들이 원하는 만큼 잘 작동한다는 뜻이다. 우리는 고쳐져야 할 버그가 있을때와 새 버전의 Apache(이하 아파치)가 나올때, 또는 누군가가 새로운 기능을 원할때만 업데이트 한다.

10.2 내 브라우저는 왜 Apache-SSL에 접속할 때 멈춰있기만 하나?

https: 대신에 http:를 사용했기 때문이다. 또, 에러 로그에서 다음 메시지를 본게 된다면 역시 위와같은 이유에서다.

  SSL_Accept failed error:140760EB:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol

10.3 패치가 적용이 안되는데, 뭐가 잘못된건가?

다음과 같은 결과를 얻는다면,

$patch < SSLpatch
  Looks like a new-style context diff.
  File to patch:
아마 옛날 버전의 patch를 가지고 있을 것이다. 2.1 이상의 버전으로 바꾸고 다시 시도하라.

10.4 HTTP가 포트(port) 80을 쓰는건 아는데, HTTPS는?

당신은 HTTPS를 아무 포트에서나 돌릴 수 있지만, 대부분의 브라우저가 기본으로 찾는 표준 포트는 443이다. 너(헉.. 언제부터.. --;)는 다음과 같이 URL에 포트번호를 지정해서 브라우저가 강제로 찾도록 할 수 있다.

https://secure.server.hell:666

10.5 나는 한 머신에서 보안(secure), 비보안(non-secure) 서버를 같이 돌리고 싶다. 가능한가?

두가지 방법이 있다. 두개의 서버 대몬을 돌리거나, 한 대몬에서 두가지 서비스를 동시에 하거나. 두 대몬를 돌리는 좋은 이유가 있더라도, 보통 가장 간단하게 한 서버를 돌리고 SSL이 필요없는 부분은 가상호스트(virtual host)로 그 기능을 꺼버리면 된다. 만약 두개의 대몬을 돌리고 싶다면 각 서버가 정해진 포트(보통 비보안은 포트 80, 보안은 443) 하고만 연결 되도록 해야 한다. 하나의 서버만 돌리고 싶다면, 어떻게 설정하는지 여기 예제 설정 파일이 있다.

10.6 이제 막 서버를 설치 했다. 테스트 증명서는 어떻게 만드나?

단계 하나 - 키(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

10.7 클라이언트 증명서는 어떻게 만드나?

단계 하나 - 위 처럼 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

10.8 내 CGI로 어떻게 클라이언트 증명에 접근하는가?

릴리즈 apache_1.3.2+ssl_1.27 이상에서는 다음 지시자를 사용한다.

  SSLExportClientCertificates
이것은 클라이언트 증명의 내용을 포함하는 환경변수를 만들게 된다. 더 자세한 것은, docs 섹션의 SSLExportClientCertificates를 보라. 작동 예제도 있다: https://www.apache-ssl.org/cgi/cert-export

10.9 FontPage98 Extensions with Apache-SSL은 어떻게 설치하나?

Bertrand Renuart가 이에 대한 자세한 내용을 http://www.itma.lu/howto/apache에서 기술하고 있다.

10.10 Verisign cert를 설치할 때, 왜 "getca", "getverisign"을 찾을 수 없는가?

Apache-SSL 명령에서 Verisign은 지원되지 않기 때문이다. 사용하고 싶다면 Stronghold(상용 아파치 기반 SSL 지원 서버)를 사용해라. 당신이 해야 할 일은 단지 증명을 파일에 저장하고 그 이름을 SSLCertificateFile지시자에 넘겨주면 된다. 키파일도 넘겨야 하는걸 기억해라.

10.11 일반적인 컴파일 에러

  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 1
OpenSSL을 업그레이드 해야 한다.

10.12 Y2K 문제는?

Apache-SSL 하부의 컴포넌트에는 날짜관련 처리가 없어서 당신 시스템의 전체적인 컴플라이언스(compliance)엔 영향을 받지 않는다. 메인 컴포넌트인 아파치는 Y2K에 대해서 이렇게 이야기 하고 있다. 또한 당신은 OS, 하드웨어와 다른 모듈을 검사해야 한다.


다음 이전 차례