Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Mozilla CA certificate store to latest (03-07-2018) for libgit 2 SSL. #26983

Merged
merged 7 commits into from
Jun 22, 2018
Merged

Conversation

mikhail-j
Copy link
Contributor

@mikhail-j mikhail-j commented May 4, 2018

The Mozilla CA certificate store provided by the curl project has been updated last month (03/07/2018).

In January 2018, Mozilla Security Blog announced that SSL Certificate Validity Periods are to be changed to 825 days or less by 03/01/2018 for newly issued SSL certificates. This coincides with this update to the cacert.pem provided by the curl project.

In March 2018, Mozilla Security Blog announces their plan for the gradual removal of Symantec TLS/SSL certificates in their Firefox Browser.

Firefox 60 is planned to be released in 05/09/2018 (Mozilla Firefox Release Calendar).

I have checked the certdata.txt used in both 59.0.3 (current release) and 60.0 (tagged as FIREFOX_RELEASE_60_BASE) and they both share the SHA256 checksum: 704f02707ec6b4c4a7597a8c6039b020def11e64f3ef0605a9c3543d48038a57.

@staticfloat @tkelman As mentioned in #24212, the checksums for cacert-2018-03-07.pem have been added for use with jlchecksum.

deps/libgit2.mk Outdated
@@ -77,10 +77,10 @@ $(LIBGIT2_SRC_PATH)/libgit2-bundled_zlib.patch-applied: $(LIBGIT2_SRC_PATH)/sour
echo 1 > $@

$(build_datarootdir)/julia/cert.pem:
$(JLDOWNLOAD) $(shell pwd)/cacert-2018-01-17.pem https://curl.haxx.se/ca/cacert-2018-01-17.pem
Copy link
Sponsor Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might be good to extract this version into it's own variable that can be set in Make.user

@mikhail-j
Copy link
Contributor Author

@vchuravy As you have suggested, I created the variable MOZILLA_CACERT_VERSION in Make.inc that can be overridden with a user definition from Make.user.

@StefanKarpinski
Copy link
Sponsor Member

Would be great to get a quick review of this (@vchuravy?, @staticfloat?). Should this be backported for 0.6.3 as well?

@vchuravy vchuravy self-assigned this May 9, 2018
Copy link
Sponsor Member

@vchuravy vchuravy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mikhail-j thank you for doing this work!

I have a few more changes in mind which I commented in line about. Let me know if you need help with the Make part.

Make.inc Outdated
# Specify the version of the Mozilla CA Certificate Store to obtain.
# The versions of cacert.pem are identified by the date of their changes.
# See https://curl.haxx.se/docs/caextract.html for more details.
MOZILLA_CACERT_VERSION:=cacert-2018-03-07.pem
Copy link
Sponsor Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would prefer this just being MOZILLA_CACERT_VERSION:=2018-03-07.

deps/libgit2.mk Outdated
@@ -77,10 +77,10 @@ $(LIBGIT2_SRC_PATH)/libgit2-bundled_zlib.patch-applied: $(LIBGIT2_SRC_PATH)/sour
echo 1 > $@

$(build_datarootdir)/julia/cert.pem:
Copy link
Sponsor Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

An issue that I just noticed with this while checking out these changes locally is that when the MOZILLA_CACERT_VERSION is changed the local file will not be updated.

One can achieve this by splitting this Make step into two steps one for downloading and checking the file and the other for installing it.

Copy link
Contributor Author

@mikhail-j mikhail-j May 9, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Couldn't we remove the locally installed cert.pem during make clean (by adding rm $(build_datarootdir)/julia/cert.pem)?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@vchuravy I noticed that the directory $(build_datarootdir)/julia still exists after make clean.

@mikhail-j
Copy link
Contributor Author

@vchuravy @staticfloat I've committed the changes @vchuravy requested for the makefile target.

@mikhail-j
Copy link
Contributor Author

@StefanKarpinski @vchuravy @staticfloat
More than a month ago, I asked if the changes @vchuravy requested would be accepted.

During this time, the official curl project has updated their Mozilla CA certificate store (here) on June 20th, 2018.

I've committed the new SSL certificates to this pull request so it can be merged with the main branch.

Copy link
Sponsor Member

@vchuravy vchuravy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, forgot about this. LGTM

@vchuravy vchuravy merged commit 5886a8c into JuliaLang:master Jun 22, 2018
@StefanKarpinski
Copy link
Sponsor Member

This seems to leave deps/cacert-2018-06-20.pem un-git-ignored in the repo.

haampie pushed a commit to haampie/julia that referenced this pull request Jun 24, 2018
… 2 SSL. (JuliaLang#26983)

Update Mozilla CA certificate store to latest (06-20-2018) for libgit2 SSL.

* Use MOZILLA_CACERT_VERSION to obtain specific version of Mozilla's CA certificate store from the curl project.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants