2017-12-15 4 views
0

자체 서명 된 인증서로 Apache에서 ssl 가상 호스트를 만들었습니다.Apache : ssl 가상 호스트에서 "curl --insecure"를 차단하는 방법

제 생각에는 구성이 정확하지만 "curl --insecure"를 사용하여이 URL에 액세스 할 수 있습니다.

여러 구성을 구글에서 검색 몇 가지 튜토리얼을 읽고 시도 (diretives의 SSLVerifyClient는 | SSLVerifyDepth | AuthType이 | AuthBasicProvider | AuthUserFile과 | 유효한 사용자 필요) 나는 "컬 --insecure"

를 사용하여 블록의 모든 성공이 URL을하지 않았다

나는 mod_security 테스트에서 생각 해왔다.하지만 올바른 방법인지 나는 모른다.

조언을 해 주시겠습니까?

덕분에 허드슨

답변

0

난 당신이 수면의 이해를 수정해야 할 수 있습니다 생각한다. 클라이언트가 SSL 인증서를 확인하도록 할 수는 없습니다. 게다가 자체 서명 된 인증서를 사용하는 경우 인증서를 자신의 ca 라이브러리에 추가하지 않은 사람을 확인하지 않습니다.

사용자 에이전트 문자열을 기반으로 요청을 거부하여 말림을 차단할 수 있습니다. 하지만 그것은 단지 헤더 일 뿐이며 클라이언트가 ("유효한"브라우저 URL과 같은) 어떤 것으로 설정할 수 있습니다. 실제로 클라이언트를 제어하려는 경우 클라이언트 인증서을 사용하여 클라이언트 측에서 설정 한 서버 인증서와 유사하게 을 사용하는 것이 좋습니다. 이 경우 클라이언트는 (표면 상으로는) 서버의 인증서를 확인하는 것 외에도 클라이언트의 인증서를 확인하여 클라이언트 액세스를 확인하기위한 매우 강력하고 신뢰할 수있는 메커니즘을 제공합니다. 불행하게도 키와 인증서 서명 요청을 생성하고 클라이언트에 인증서를 서명하는 데 어려움이 있기 때문에 클라이언트 http 인증서는 일반적이지 않습니다. 그러나 그것들은 매우 안전하고, 당신이 양면을 통제한다면 좋은 선택입니다.

중간 접지는하지만, 이런 것들 중 어느 것도 컬 차단하지 않습니다 (당신이 다음 모두 인증되지 않은 요청을 거부하는 것) 한마디로

액세스 할 수있는 사용자를 제어하기 위해 응용 프로그램에 인증 레이어를 추가하는 것입니다. 그들은 인증 할 수없는 클라이언트를 차단합니다. 원격 브라우저/클라이언트 (HTTP 클라이언트의 재량에 따라 다름)에 집중하지 않는 것이 좋습니다. 대신 필요한 보안 인증 제공에 중점을 두십시오. IMHO, 클라이언트 사용자 에이전트를 차단하려고 시도하는 것은 바보입니다. 그것은 무명의 보안입니다. 누구나 임의의 사용자 에이전트를 설정할 수 있습니다.

+0

안녕 Dan : 예, 조금 혼란 스럽습니다. :) 자체 서명 인증서는 테스트 용입니다. 저의 목표는 curl과 같은 도구를 사용하지 않고 SSL 도메인에 액세스하는 것입니다. curl이 SSL 인증서를 확인하지 않기 때문에 "안전하지 않은"옵션을 사용하면 클라이언트는 페이지 내용을 가져올 수 있습니다. 페이지 헤더를 테스트하기 위해 SSLRequire 또는 SetEnvIf를 사용한다고 생각했지만 각각의 도구가 다른 헤더를 가질 수 있기 때문에 이것이 작동하는지 모르겠습니다. – hudsonreis81

+0

포함 된 내용을 해결할 수 있도록 답변에 색상을 추가하려고 시도했습니다. –

+0

안녕하세요. 지연 돼서 죄송합니다. 당신의 대답은 깨달았습니다! 다른 답변 읽기 및 방화벽에 대한 자습서 학습 curl은 SSL 연결을 변경하지 않고 안전하지 않은 연결 만 표시한다는 것을 알고있었습니다. 두면 (클라이언트와 서버)에 인증서를 설치하는 것이 더 좋겠지 만 프로그래머가 더 많은 자율성을 갖기 때문에 응용 프로그램에 인증 계층을 추가하는 것이 더 소극적 일 수 있습니다. 도움을 주셔서 대단히 감사합니다. – hudsonreis81

관련 문제