2016-09-22 29 views
7

Sau khi nâng cấp lên macOS 10.12 Sierra Tôi không thể đồng bộ hóa với máy chủ git SSL đã mã hóa của mình. Chứng chỉ vẫn hoạt động tốt khi truy cập máy chủ thông qua Safari.git không thể tìm thấy chứng chỉ trong keychain sau khi cập nhật lên macOS Sierra

Tôi nhận được thông báo này khi cố gắng chuyển đến máy chủ:

fatal: unable to access 'https://....': SSL: Can't find the certificate "...." and its private key in the Keychain. 

Giấy chứng nhận là có trong keychain, và tên của nó là chính xác (nó làm việc trước khi cập nhật), nhưng bằng cách nào đó tôi không thể Truy cập nó.

~/file .gitconfig tôi vẫn bao gồm này:

[http "https://...."] 
    sslCert = .... 
[credential] 
    helper = osxkeychain 

có bất cứ ai khác đụng vào vấn đề này cho đến nay?

Trả lời

4

Dường như -chứng-osxkeychain git ứng dụng helper được chia trên hệ điều hành MacOS sierra và sẽ không lấy bất kỳ một chứng chỉ người dùng hơn được trả về với an ninh find-sắc

Cách giải quyết duy nhất tôi tìm thấy là

  • xuất khẩu các chứng chỉ và khóa từ keychain để my_certificate.p12
  • chỉnh sửa .git/config cho tài khoản bị ảnh hưởng để sử dụng

    [http] 
        sslCert = /Users/foo/certificates/my_certificate.p12 
        sslcertpasswordprotected = true 
    

Lưu ý: Bạn sẽ cần một mật khẩu trên P12 và phải nhập mật khẩu cho p12 mỗi khi bạn làm một lệnh git.

P.S: RADAR: // 28461462

+0

Tuyệt vời! Cách giải quyết đó vẫn hoạt động, nhưng có ai biết về bất kỳ tiến bộ nào trong vấn đề này không? – jonasberglund

+0

Tại sao bạn nghĩ rằng điều này liên quan đến git-credential-osxkeychain? Không thể thấy bất kỳ mã nào có thể xử lý chứng chỉ trong đó https://github.com/git/git/blob/master/contrib/credential/osxkeychain/git-credential-osxkeychain.c – Broatian

+0

Dường như một bản sửa lỗi đang được tiến hành các CURL repo: –

3

Nếu bạn muốn sử dụng một crt và keyfile

[http] 
    sslVerify = false 
    sslCert = my.crt 
    sslKey = my.key 

bạn cần phải cài đặt curl và git với sự hỗ trợ openssl

brew install openssl 
brew install curl --with-openssl 
brew install git --with-brewed-openssl --with-brewed-curl 

Đó là làm việc cho tôi như mong đợi

+0

Thx!Điều đó hoạt động trên Sierra, mặc dù có hiệu quả không sử dụng các cơ chế bảo mật mac OS hoàn toàn ngay bây giờ và brew rõ ràng nói, rằng openssl không được hỗ trợ theo hệ điều hành mac. –

+0

Trước tiên, bạn phải gỡ cài đặt – Tintenklecks

0

Simple ssh-add giúp tôi với điều này;)

ssh-add ~/.ssh/id_rsa 
0

Trước tiên, bạn phải gỡ bỏ cài đặt

brew uninstall openssl 
brew uninstall curl 
brew uninstall git 

sau khi cài đặt như @trollr nêu

brew install openssl 
brew install curl --with-openssl 
brew install git --with-brewed-openssl --with-brewed-curl 

, bạn cũng phải đảm bảo rằng phiên bản git đúng (có MAAAAAANY sẵn, xem

find/-name git 

)

Homebrew cho bạn biết vị trí của nó đặt phiên bản git ủ mới, ví dụ

/usr/local/Cellar/git/2.10.2/bin/git 

kiểm tra phiên bản của bạn với mà git

hoặc chỉ cần gọi đường dẫn tuyệt đối để đảm bảo sử dụng phiên bản đúng, như

/usr/local/Cellar/git/2.10.2/bin/git clone ....... 
0

Đây là những gì đã làm việc cho tôi

git -c http.sslCert=/Users/user/Documents/gittest/cert.p12 -c http.sslcertpasswordprotected=true clone https://gitlab.domain.com/user/repository.git 

bạn có thể thêm động từ khác ose debuggin bằng cách thêm

GIT_CURL_VERBOSE=1 GIT_TRACE=2 GIT_TRACE_PACKET=2 

ở phía trước lệnh.

Chứng chỉ nằm trong móc khóa và được đánh dấu là đáng tin cậy. Cũng có chứng chỉ CA.

0

Vấn đề tương tự với thông báo lỗi "Không thể tìm thấy chứng chỉ .." đã được giải quyết cho tôi sau khi thay đổi tên chứng chỉ thành chuỗi không chứa ký tự khác ngoài chữ cái Latinh. I E. đổi tên "my_cert.p12" thành "mysert.p12" đã thực sự giúp loại bỏ lỗi này.

Các vấn đề liên quan