2017-08-03 94 views
1

我試圖讓Julia 0.6.0從使用自簽名證書進行身份驗證的公司防火牆後面工作。到目前爲止,我一直無法找到正確的咒語來說服julia/gitlib2即使它是自簽名的,證書也可以。如果這有所作爲,我在CentOS上。Julia證書錯誤

無論我嘗試過什麼,都會發生以下錯誤。

INFO: Initializing package repository /home/tannerww/.julia/v0.6 
INFO: Cloning METADATA from https://github.com/JuliaLang/METADATA.jl 
ERROR: GitError(Code:ECERTIFICATE, Class:SSL, SSL error: ffffd900[10008] - X509 - Certificate verification failed, e.g. CRL, CA or signature check failed) 
Stacktrace: 
[1] macro expansion at ./libgit2/error.jl:99 [inlined] 
[2] clone(::String, ::String, ::Base.LibGit2.CloneOptions) at ./libgit2/repository.jl:276 
[3] #clone#100(::String, ::Bool, ::Ptr{Void}, ::Nullable{Base.LibGit2.AbstractCredentials}, ::Function, ::String, ::String) at ./libgit2/libgit2.jl:562 
[4] (::Base.LibGit2.#kw##clone)(::Array{Any,1}, ::Base.LibGit2.#clone, ::String, ::String) at ./<missing>:0 
[5] (::Base.Pkg.Dir.##8#10{String,String})() at ./pkg/dir.jl:55 
[6] cd(::Base.Pkg.Dir.##8#10{String,String}, ::String) at ./file.jl:70 
[7] init(::String, ::String) at ./pkg/dir.jl:53 
[8] #cd#1(::Array{Any,1}, ::Function, ::Function, ::String, ::Vararg{String,N} where N) at ./pkg/dir.jl:28 
[9] add(::String) at ./pkg/pkg.jl:117 

我試了一些其他的東西,但迄今沒有任何影響。我已經在gitconfig中設置sslCert和sslCAInfo來指向帶有我們公司證書的證書文件。我也在gitconfig中設置了sslVerify = false,但似乎GitLib2忽略了這一點。

在茱莉亞方面,我發現了GitLib2.ProxyOptions結構,它包含一個certificate_cb函數,當驗證失敗時會調用它。我還沒有想出如何設置回調,因此它被全球使用。如果我能做到這一點,我至少可以解決這個問題(也許)。

在這一點上我失去了接下來要做什麼。

+0

綜觀(https://開頭github.com/JuliaLang/julia/issues/13399),也許''LibGit2.set_ssl_cert_locations(「/ etc/ssl/certs/ca-certificates.crt」)這一行可以提供幫助。或者'set_ssl_cert_locations'的其他參數。 –

+0

@DanGetz謝謝,但我已經找到了一個,並嘗試了各種可以將set_ssl_cert_locations的參數想出來的變體。我始終得到相同的錯誤。 –

回答

0

LibGit2.set_ssl_cert_locations並沒有爲我工作,但我能得到它通過設置環境變量SSL_CERT_FILE,如工作,把下面的到我的.bashrc:

export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt