2017-04-24 1 views
2

는이 같은 HTTPS에 HTTP 트래픽을 리디렉션의 nginx를 설정 한 재 :이해의 nginx의 HTTP는

server { 

    listen 80; 
    server_name git.mydomain.it; 

    return 301 https://$host$request_uri; 

} 

나는 성공적 HTTPS 및 HTTP를 통해 연결할 수 있습니다. 내가 git clone http://git.mydomain.it/oznt/tracker.git 을 수행 할 때

은 내가 올바른 URL을 입력하지 오전 :

$ git clone http://git.mydomain.it/oznt/tracker.git 
Cloning into 'tracker'... 
Username for 'https://git.mydomain.it': 

를 지금까지 너무 좋아. 하지만 비밀번호를 입력하면 어떻게되는지 궁금합니다. 내가 https://git.mydomain.it에 직접 연결 한 것처럼 이 보호되어 있습니까? 아니면 HTTP 끝점으로 일반 텍스트로 된 후 처음으로 리디렉션되는 것입니까?

+0

내 대답은 여기에 있습니다. http://stackoverflow.com/questions/40957699/does-http-redirect-to-https-risk-capture-of-password – Oz123

+0

나는이 질문에 대한 답변을 생각하지 않지만, 그 질문은 나보다. ;) –

답변

1

https 여야하며 로컬 .git 폴더의 config 파일을보고 확인할 수 있습니다. 를 찾아보십시오 :

[remote "origin"] 
    url = https://foo.bar.git 

편집 : 그것은 쓰여으로 in the source code

http_fetch() { 
    # $1 = Remote, $2 = Local 
    curl -nsfL $curl_extra_args "$1" >"$2" 

나는 당신의 암호가 참으로 변화 가져옵니다 만 본질적으로 의미 리디렉션 (via -L)를 따라 컬 기대 HTTP를 통해 일반.

+0

그건 내 자식 클라이언트와 자식 서버 사이에서 일어나는 실제 통신을 설명하지 않습니다. 비밀번호는 어떻게 전송됩니까? – Oz123

+0

나는 아직도 당신이 의미하는 것을 얻지 못한다. 이것은 HTTP에 대한 일반적인 질문입니까? https://git-scm.com/book/en/v2/Git-Internals-Transfer-Protocols –

+0

HTTP를 사용하여 연결합니다. 따라서 연결은 A -> B에서 A가 내 컴퓨터이고 B (서버)가 B를 C로 리디렉션합니다. 따라서 내 비밀번호와 관련하여 문제가 발생합니다. 그것이 A에서 B로 또는 A에서 C로 보내지 는가? – Oz123