朱莉娅证书错误

3
我正在企图在我们公司使用自签名证书的防火墙后面使Julia 0.6.0运行。到目前为止,我还没有找到什么正确的方法来让julia/gitlib2认为这个证书是可信的,即使它是自签名的。如果需要,我可以提供我使用的CentOS系统信息。无论我尝试什么,都会出现以下错误信息。
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似乎忽略了它。
在julia方面,我发现了GitLib2.ProxyOptions结构体,其中包含一个certificate_cb函数,当验证失败时会调用该函数。我还没有弄清楚如何设置回调函数以全局使用。如果我能做到这一点,至少可以解决问题(也许)。
目前我不知道接下来该尝试什么。

看一下(https://github.com/JuliaLang/julia/issues/13399),也许可以使用 LibGit2.set_ssl_cert_locations("/etc/ssl/certs/ca-certificates.crt") 这行代码来解决问题。或者试试其他 set_ssl_cert_locations 参数。 - Dan Getz
@DanGetz 谢谢,但我已经找到了那个并尝试了每种可能的参数设置_ssl_cert_locations。我始终得到相同的错误。 - Wayne Tanner
1个回答

4

LibGit2.set_ssl_cert_locations对我并不起作用,但是我通过设置环境变量SSL_CERT_FILE成功地解决了问题。例如,将以下内容添加到我的.bashrc文件中:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接