# Adding package failure due to invalid SSL certificate

**URL:** <https://discourse.julialang.org/t/adding-package-failure-due-to-invalid-ssl-certificate/37549>\
**Category:** New to Julia\
**Tags:** package\
**Created:** [April 14, 2020, 6:04am UTC](https://discourse.julialang.org/t/adding-package-failure-due-to-invalid-ssl-certificate/37549 "2020-04-14T06:04:49Z")\
**Posts on this page:** 17\
**Page:** 1

<div class="post-metadata">

**Author:** ![leonexu](https://avatars.discourse-cdn.com/v4/letter/l/0ea827/32.png) [@leonexu](https://discourse.julialang.org/u/leonexu)\
**Post date:** [April 14, 2020, 6:04am UTC](https://discourse.julialang.org/t/adding-package-failure-due-to-invalid-ssl-certificate/37549/1 "2020-04-14T06:04:50Z")

</div>

Hello,  
Installing packages always fails due to ssl certificate related errors.  
My os: ubuntu 16.04  
I have disabled git certification check:

```julia
git config http.sslVerify false

```

Have tried the follows without luck:

```julia
julia> using LibGit2
julia> LibGit2.set_ssl_cert_locations("/etc/ssl/certs/ca-certificates.crt")

```

```julia
export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt
export GIT_SSL_CAINFO=/home/abc/julia-1.4.0/share/julia/cert.pem

```

```julia
julia> using Pkg
julia> Pkg.add("Flux")
   Updating registry at `~/.julia/registries/General`
   Updating git-repo `https://github.com/JuliaRegistries/General.git`

┌ Warning: Some registries failed to update:
│ — /development/x00406353/.julia/registries/General — failed to fetch from repo
└ @ Pkg.Types /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Pkg/src/Types.jl:1122
  Resolving package versions...
    Cloning [587475ba-b771-5e3f-ad9e-33799f191a9c] Flux from https://github.com/FluxML/Flux.jl.git
ERROR: failed to clone from https://github.com/FluxML/Flux.jl.git, error: GitError(Code:ECERTIFICATE, Class:SSL, the SSL certificate is invalid: 0x08 - The certificate is not correctly signed by the trusted CA)
Stacktrace:
 [1] pkgerror(::String) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Pkg/src/Types.jl:53
 [2] clone(::Pkg.Types.Context, ::String, ::String; header::String, credentials::Nothing, kwargs::Base.Iterators.Pairs{Symbol,Bool,Tuple{Symbol},NamedTuple{(:isbare,),Tuple{Bool}}}) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Pkg/src/GitTools.jl:149
 [3] #ensure_clone#3 at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Pkg/src/GitTools.jl:110 [inlined]
 [4] install_git(::Pkg.Types.Context, ::Base.UUID, ::String, ::Base.SHA1, ::Array{String,1}, ::VersionNumber, ::String) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Pkg/src/Operations.jl:555
 [5] download_source(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}, ::Dict{Base.UUID,Array{String,1}}; readonly::Bool) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Pkg/src/Operations.jl:714
 [6] #download_source#39 at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Pkg/src/Operations.jl:633 [inlined]
 [7] download_source at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Pkg/src/Operations.jl:631 [inlined]
 [8] add(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}, ::Array{Base.UUID,1}; preserve::Pkg.Types.PreserveLevel, platform::Pkg.BinaryPlatforms.Linux) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Pkg/src/Operations.jl:1080
 [9] add(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}; preserve::Pkg.Types.PreserveLevel, platform::Pkg.BinaryPlatforms.Linux, kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:159
 [10] add(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:112
 [11] #add#27 at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:109 [inlined]
 [12] add at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:109 [inlined]
 [13] #add#24 at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:107 [inlined]
 [14] add at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:107 [inlined]
 [15] add(::String; kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:106
 [16] add(::String) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:106
 [17] top-level scope at REPL[2]:1
caused by [exception 1]
GitError(Code:ECERTIFICATE, Class:SSL, the SSL certificate is invalid: 0x08 - The certificate is not correctly signed by the trusted CA)
Stacktrace:
 [1] macro expansion at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/LibGit2/src/error.jl:101 [inlined]
 [2] clone(::String, ::String, ::LibGit2.CloneOptions) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/LibGit2/src/repository.jl:459
 [3] clone(::String, ::String; branch::String, isbare::Bool, remote_cb::Ptr{Nothing}, credentials::LibGit2.CachedCredentials, callbacks::Dict{Symbol,Tuple{Ptr{Nothing},Any}}) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/LibGit2/src/LibGit2.jl:580
 [4] clone(::Pkg.Types.Context, ::String, ::String; header::String, credentials::Nothing, kwargs::Base.Iterators.Pairs{Symbol,Bool,Tuple{Symbol},NamedTuple{(:isbare,),Tuple{Bool}}}) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Pkg/src/GitTools.jl:141
 [5] #ensure_clone#3 at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Pkg/src/GitTools.jl:110 [inlined]
 [6] install_git(::Pkg.Types.Context, ::Base.UUID, ::String, ::Base.SHA1, ::Array{String,1}, ::VersionNumber, ::String) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Pkg/src/Operations.jl:555
 [7] download_source(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}, ::Dict{Base.UUID,Array{String,1}}; readonly::Bool) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Pkg/src/Operations.jl:714
 [8] #download_source#39 at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Pkg/src/Operations.jl:633 [inlined]
 [9] download_source at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Pkg/src/Operations.jl:631 [inlined]
 [10] add(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}, ::Array{Base.UUID,1}; preserve::Pkg.Types.PreserveLevel, platform::Pkg.BinaryPlatforms.Linux) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Pkg/src/Operations.jl:1080
 [11] add(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}; preserve::Pkg.Types.PreserveLevel, platform::Pkg.BinaryPlatforms.Linux, kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:159
 [12] add(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:112
 [13] #add#27 at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:109 [inlined]
 [14] add at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:109 [inlined]
 [15] #add#24 at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:107 [inlined]
 [16] add at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:107 [inlined]
 [17] add(::String; kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:106
 [18] add(::String) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:106
 [19] top-level scope at REPL[2]:1

```

Can anybody help?  
Thanks.

---

<div class="post-metadata">

**Author:** ![oheil](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oheil/32/220745_2.png) [@oheil](https://discourse.julialang.org/u/oheil)\
**Post date:** [April 14, 2020, 6:50am UTC](https://discourse.julialang.org/t/adding-package-failure-due-to-invalid-ssl-certificate/37549/2 "2020-04-14T06:50:03Z")

</div>

I can only guess here, but maybe you need to update your root certificates. On Ubuntu you would do this with `sudo update-ca-certificates`.  
Which system do you have?  
If you try to clone [https://github.com/FluxML/Flux.jl.git](https://github.com/FluxML/Flux.jl.git) from the shell, what happens?  
`git clone https://github.com/FluxML/Flux.jl.git`

---

<div class="post-metadata">

**Author:** ![leonexu](https://avatars.discourse-cdn.com/v4/letter/l/0ea827/32.png) [@leonexu](https://discourse.julialang.org/u/leonexu)\
**Post date:** [April 14, 2020, 7:29am UTC](https://discourse.julialang.org/t/adding-package-failure-due-to-invalid-ssl-certificate/37549/3 "2020-04-14T07:29:13Z")

</div>

Thanks.  
After running “sudo update-ca-certificates”, the same problem remains.  
And, I can run “git clone [https://github.com/FluxML/Flux.jl.git](https://github.com/FluxML/Flux.jl.git)” without any problem (the repository is correctly downloaded).

---

<div class="post-metadata">

**Author:** ![leonexu](https://avatars.discourse-cdn.com/v4/letter/l/0ea827/32.png) [@leonexu](https://discourse.julialang.org/u/leonexu)\
**Post date:** [April 14, 2020, 7:35am UTC](https://discourse.julialang.org/t/adding-package-failure-due-to-invalid-ssl-certificate/37549/4 "2020-04-14T07:35:54Z")

</div>

> [@oheil](#):
>
> Which system do you have?

Do you mean OS? I am using ubuntu 16.04.

---

<div class="post-metadata">

**Author:** ![oheil](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oheil/32/220745_2.png) [@oheil](https://discourse.julialang.org/u/oheil)\
**Post date:** [April 14, 2020, 8:36am UTC](https://discourse.julialang.org/t/adding-package-failure-due-to-invalid-ssl-certificate/37549/5 "2020-04-14T08:36:03Z")

</div>

LibGit2 seems to ignore the configuration with

```julia
git config http.sslVerify false

```

> [@How can I force Pkg ( and LibGit2 ) to ignore SSL Verification (sslVerify)?](https://discourse.julialang.org/t/how-can-i-force-pkg-and-libgit2-to-ignore-ssl-verification-sslverify/25306):
>
> Hi, I’m behind a corporate proxy and SSL Verifications fail ( because they are MITMed ). Outside of Julia I can clone by using the corporate proxy and specifying sslVerify = false in .gitconfig. But apparently LibGit2 ignores sslVerify and instead expects the user to specify a callback. I skimmed LibGit2.jl documentation and I see that you can provide a callback but: It needs to be a pointer, I have no idea what I’m doing How do I make Pkg use it anyway Julia at work would make me happy …

and other sources.

Here

> <https://stackoverflow.com/questions/45489105/julia-certificate-error>

it is suggested to set an environment variable:

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

```

But I think the way to go is using a callback as described here:  
[https://docs.julialang.org/en/v1/stdlib/LibGit2/#LibGit2.ProxyOptions](https://docs.julialang.org/en/v1/stdlib/LibGit2/#LibGit2.ProxyOptions)

Searching and try and error with Copy&Paste lead me to:

```julia
julia> using LibGit2

julia> function certNoCheck() return 0; end
certNoCheck (generic function with 1 method)

julia> const cb = @cfunction(certNoCheck,Cint,())
Ptr{Nothing} @0x000000002eee4c10

julia> LibGit2.ProxyOptions(certificate_cb=cb)
LibGit2.ProxyOptions(0x00000001, LibGit2.Consts.PROXY_AUTO, Cstring(0x0000000000000000), Ptr{Nothing} @0x0000000000000000, Ptr{Nothing} @0x000000002eee4c10, Ptr{Nothing} @0x0000000000000000)

```

But I have no idea if this is working at all nor if it provides the “no cert validation” for the package managers use of LibGit2.

I think if this doesn’t work, I am out of options and someone else must fill in. You may consider pinging Stefan Karpinski (Author of Pkg3). @(delete space to ping)StefanKarpinski

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [April 14, 2020, 8:59am UTC](https://discourse.julialang.org/t/adding-package-failure-due-to-invalid-ssl-certificate/37549/6 "2020-04-14T08:59:30Z")

</div>

> [@oheil](#):
>
> out of options

If possible, my standard approach would be simply upgrading the Ubuntu release to something more recent first. Eg Ubuntu 18.04 if an LTS is required. Or 20.04 (technically unreleased, but available).

---

<div class="post-metadata">

**Author:** ![leonexu](https://avatars.discourse-cdn.com/v4/letter/l/0ea827/32.png) [@leonexu](https://discourse.julialang.org/u/leonexu)\
**Post date:** [April 14, 2020, 9:36am UTC](https://discourse.julialang.org/t/adding-package-failure-due-to-invalid-ssl-certificate/37549/7 "2020-04-14T09:36:50Z")

</div>

Thanks. You mean that upgrading to 18.04 fix this problem? I will try it if so.

---

<div class="post-metadata">

**Author:** ![oheil](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oheil/32/220745_2.png) [@oheil](https://discourse.julialang.org/u/oheil)\
**Post date:** [April 14, 2020, 9:39am UTC](https://discourse.julialang.org/t/adding-package-failure-due-to-invalid-ssl-certificate/37549/8 "2020-04-14T09:39:36Z")

</div>

I just learned that

> [@oheil](#):
>
> update-ca-certificates

doesnt download new root certificates.  
You have to download the root certifcate, put it into

```julia-auto
/etc/ssl/certs/

```

and then run `update-ca-certificates`

> **[DigiCert Trusted Root Authority Certificates](https://knowledge.digicert.com/general-information/digicert-trusted-root-authority-certificates)**

Upgrading Ubuntu would be the best if possible.

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [April 14, 2020, 9:39am UTC](https://discourse.julialang.org/t/adding-package-failure-due-to-invalid-ssl-certificate/37549/9 "2020-04-14T09:39:36Z")

</div>

I don’t know, but I would try first, before trying to debug this further.

---

<div class="post-metadata">

**Author:** ![leonexu](https://avatars.discourse-cdn.com/v4/letter/l/0ea827/32.png) [@leonexu](https://discourse.julialang.org/u/leonexu)\
**Post date:** [April 14, 2020, 9:40am UTC](https://discourse.julialang.org/t/adding-package-failure-due-to-invalid-ssl-certificate/37549/10 "2020-04-14T09:40:26Z")

</div>

> [@oheil](#):
>
> ```julia-auto
> julia> using LibGit2
> 
> julia> function certNoCheck() return 0; end
> certNoCheck (generic function with 1 method)
> 
> julia> const cb = @cfunction(certNoCheck,Cint,())
> Ptr{Nothing} @0x000000002eee4c10
> 
> julia> LibGit2.ProxyOptions(certificate_cb=cb)
> LibGit2.ProxyOptions(0x00000001, LibGit2.Consts.PROXY_AUTO, Cstring(0x0000000000000000), Ptr{Nothing} @0x0000000000000000, Ptr{Nothing} @0x000000002eee4c10, Ptr{Nothing} @0x0000000000000000)
> 
> ```

Thanks. Not work. The error remains.

@StefanKarpinski  
Can you please have a look at my problem?

---

<div class="post-metadata">

**Author:** ![leonexu](https://avatars.discourse-cdn.com/v4/letter/l/0ea827/32.png) [@leonexu](https://discourse.julialang.org/u/leonexu)\
**Post date:** [April 15, 2020, 1:11am UTC](https://discourse.julialang.org/t/adding-package-failure-due-to-invalid-ssl-certificate/37549/11 "2020-04-15T01:11:29Z")

</div>

> [https://www.digicert.com/digicert-root-certificates.htm](https://www.digicert.com/digicert-root-certificates.htm)

Looks like the page provides lots of certificates. Do I need to download all of them or a certain one? If the latter, which one? I googled around on this problem and didn’t find an answer.  
Thanks.

---

<div class="post-metadata">

**Author:** ![oheil](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oheil/32/220745_2.png) [@oheil](https://discourse.julialang.org/u/oheil)\
**Post date:** [April 15, 2020, 6:26am UTC](https://discourse.julialang.org/t/adding-package-failure-due-to-invalid-ssl-certificate/37549/12 "2020-04-15T06:26:50Z")

</div>

You can check the certificate of github with a browser.  
I would say you need at least from root:  
DigiCert High Assurance EV Root CA  
and from intermediate:  
DigiCert SHA2 Extended Validation Server CA

But remember, it is not clear (at least for me) how to tell libGit2 to use your system certs. We are still in try and error mode.

---

<div class="post-metadata">

**Author:** ![leonexu](https://avatars.discourse-cdn.com/v4/letter/l/0ea827/32.png) [@leonexu](https://discourse.julialang.org/u/leonexu)\
**Post date:** [April 15, 2020, 6:37am UTC](https://discourse.julialang.org/t/adding-package-failure-due-to-invalid-ssl-certificate/37549/13 "2020-04-15T06:37:59Z")

</div>

Ok. Thank you.

---

<div class="post-metadata">

**Author:** ![leonexu](https://avatars.discourse-cdn.com/v4/letter/l/0ea827/32.png) [@leonexu](https://discourse.julialang.org/u/leonexu)\
**Post date:** [April 27, 2020, 7:10am UTC](https://discourse.julialang.org/t/adding-package-failure-due-to-invalid-ssl-certificate/37549/14 "2020-04-27T07:10:19Z")

</div>

@ [Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)  
@ [oheil](https://discourse.julialang.org/u/oheil)

Largely solve the problem by clone the latest code and build it myself. Some packages still cannot be automatically downloaded and installed due to curl related certificate problems though.

---

<div class="post-metadata">

**Author:** ![leonexu](https://avatars.discourse-cdn.com/v4/letter/l/0ea827/32.png) [@leonexu](https://discourse.julialang.org/u/leonexu)\
**Post date:** [April 27, 2020, 7:14am UTC](https://discourse.julialang.org/t/adding-package-failure-due-to-invalid-ssl-certificate/37549/15 "2020-04-27T07:14:24Z")

</div>

@ [Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)  
@ [oheil](https://discourse.julialang.org/u/oheil)

The error turns to this. Can anybody help?

```julia
┌ Error: Error building `CodecZlib`:
│ [ Info: Downloading https://github.com/bicycle1885/ZlibBuilder/releases/download/v1.0.4/Zlib.v1.2.11.x86_64-linux-gnu.tar.gz to /development/x00406353/.julia/packages/CodecZlib/5t9zO/deps/usr/
downloads/Zlib.v1.2.11.x86_64-linux-gnu.tar.gz...
│ ERROR: LoadError: Could not download https://github.com/bicycle1885/ZlibBuilder/releases/download/v1.0.4/Zlib.v1.2.11.x86_64-linux-gnu.tar.gz to /development/x00406353/.julia/packages/CodecZli
b/5t9zO/deps/usr/downloads/Zlib.v1.2.11.x86_64-linux-gnu.tar.gz:
│ ErrorException("")
│ Stacktrace:
│ [1] error(::String) at ./error.jl:33
│ [2] download(::String, ::String; verbose::Bool) at /development/x00406353/.julia/packages/BinaryProvider/kcGxO/src/PlatformEngines.jl:502
│ [3] download_verify(::String, ::String, ::String; verbose::Bool, force::Bool, quiet_download::Bool) at /development/x00406353/.julia/packages/BinaryProvider/kcGxO/src/PlatformEngines.jl:571
│ [4] install(::String, ::String; prefix::Prefix, tarball_path::String, force::Bool, ignore_platform::Bool, verbose::Bool) at /development/x00406353/.julia/packages/BinaryProvider/kcGxO/src/Pre
fix.jl:314
│ [5] top-level scope at /development/x00406353/.julia/packages/CodecZlib/5t9zO/deps/build.jl:89
│ [6] include(::String) at ./client.jl:457
│ [7] top-level scope at none:5
│ in expression starting at /development/x00406353/.julia/packages/CodecZlib/5t9zO/deps/build.jl:78
│ caused by [exception 1]
│
│ Stacktrace:
│ [1] error() at ./error.jl:42
│ [2] download(::String, ::String; verbose::Bool) at /development/x00406353/.julia/packages/BinaryProvider/kcGxO/src/PlatformEngines.jl:496
│ [3] download_verify(::String, ::String, ::String; verbose::Bool, force::Bool, quiet_download::Bool) at /development/x00406353/.julia/packages/BinaryProvider/kcGxO/src/PlatformEngines.jl:571
│ [4] install(::String, ::String; prefix::Prefix, tarball_path::String, force::Bool, ignore_platform::Bool, verbose::Bool) at /development/x00406353/.julia/packages/BinaryProvider/kcGxO/src/Pre
fix.jl:314
│ [5] top-level scope at /development/x00406353/.julia/packages/CodecZlib/5t9zO/deps/build.jl:89
│ [6] include(::String) at ./client.jl:457
│ [7] top-level scope at none:5
│ [15:21:11]
│ [15:21:11] curl: (60) server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
│ [15:21:11] More details here: http://curl.haxx.se/docs/sslcerts.html
│ [15:21:11]
│ [15:21:11] curl performs SSL certificate verification by default, using a "bundle"
│ [15:21:11] of Certificate Authority (CA) public keys (CA certs). If the default
│ [15:21:11] bundle file isn't adequate, you can specify an alternate file
│ [15:21:11] using the --cacert option.
│ [15:21:11] If this HTTPS server uses a certificate signed by a CA represented in
│ [15:21:11] the bundle, the certificate verification probably failed due to a
│ [15:21:11] problem with the certificate (it might be expired, or the name might
│ [15:21:11] not match the domain name in the URL).
│ [15:21:11] If you'd like to turn off curl's verification of the certificate, use
│ [15:21:11] the -k (or --insecure) option.

```

---

<div class="post-metadata">

**Author:** ![oheil](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oheil/32/220745_2.png) [@oheil](https://discourse.julialang.org/u/oheil)\
**Post date:** [April 27, 2020, 7:18am UTC](https://discourse.julialang.org/t/adding-package-failure-due-to-invalid-ssl-certificate/37549/16 "2020-04-27T07:18:22Z")

</div>

For this ~~we~~ Sijun already found a solution:

> [@Problem with curl.exe (Windows) and package installation](https://discourse.julialang.org/t/problem-with-curl-exe-windows-and-package-installation/29525/51):
>
> create a file called “\_curlrc” that contains “insecure” (wihout quote) and place it in your %APPDATA% (echo %APPDATA%). For windows, curlrc file should begin with underscore. [https://curl.haxx.se/docs/manual.html](https://curl.haxx.se/docs/manual.html)

Important: do this fix only temporary!

---

<div class="post-metadata">

**Author:** ![tawheeler](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tawheeler/32/17657_2.png) [@tawheeler](https://discourse.julialang.org/u/tawheeler)\
**Post date:** [November 6, 2020, 9:55pm UTC](https://discourse.julialang.org/t/adding-package-failure-due-to-invalid-ssl-certificate/37549/17 "2020-11-06T21:55:11Z")

</div>

For what its worth, I found this workaround to add the check certificate option to wget:

```julia
echo "check_certificate = off" >> ~/.wgetrc

```
