<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>230211</bug_id>
          
          <creation_ts>2021-09-13 02:21:55 -0700</creation_ts>
          <short_desc>[webkitpy] AutoInstall not loading default OpenSSL certificates</short_desc>
          <delta_ts>2025-01-07 11:14:13 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Sam Sneddon [:gsnedders]">gsnedders</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jbedard</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1792895</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-09-13 02:21:55 -0700</bug_when>
    <thetext>The issue:

Downloading setuptools-56.2.0...
&lt;urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)&gt;
Failed to download setuptools, retrying
&lt;urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)&gt;
Failed to download setuptools, retrying
Failed to install setuptools-56.2.0!
Traceback (most recent call last):
  File &quot;Tools/Scripts/git-webkit&quot;, line 28, in &lt;module&gt;
    from webkitpy.common.config.committers import CommitterList
  File &quot;/home/buildbot/igalia-jsc32-armv7-ews/JSC-ARMv7-32bits-Build-EWS/build/Tools/Scripts/webkitpy/__init__.py&quot;, line 78, in &lt;module&gt;
    import webkitscmpy
  File &quot;/home/buildbot/igalia-jsc32-armv7-ews/JSC-ARMv7-32bits-Build-EWS/build/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py&quot;, line 57, in &lt;module&gt;
    from webkitscmpy.commit import Commit
  File &quot;/home/buildbot/igalia-jsc32-armv7-ews/JSC-ARMv7-32bits-Build-EWS/build/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/commit.py&quot;, line 24, in &lt;module&gt;
    import six
  File &quot;&lt;frozen importlib._bootstrap&gt;&quot;, line 983, in _find_and_load
  File &quot;&lt;frozen importlib._bootstrap&gt;&quot;, line 963, in _find_and_load_unlocked
  File &quot;&lt;frozen importlib._bootstrap&gt;&quot;, line 906, in _find_spec
  File &quot;/home/buildbot/igalia-jsc32-armv7-ews/JSC-ARMv7-32bits-Build-EWS/build/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py&quot;, line 602, in find_spec
    loader = cls.find_module(fullname, path=path)
  File &quot;/home/buildbot/igalia-jsc32-armv7-ews/JSC-ARMv7-32bits-Build-EWS/build/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py&quot;, line 616, in find_module
    cls.install(name)
  File &quot;/home/buildbot/igalia-jsc32-armv7-ews/JSC-ARMv7-32bits-Build-EWS/build/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py&quot;, line 591, in install
    return all([to_install.install() for to_install in packages])
  File &quot;/home/buildbot/igalia-jsc32-armv7-ews/JSC-ARMv7-32bits-Build-EWS/build/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py&quot;, line 591, in &lt;listcomp&gt;
    return all([to_install.install() for to_install in packages])
  File &quot;/home/buildbot/igalia-jsc32-armv7-ews/JSC-ARMv7-32bits-Build-EWS/build/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py&quot;, line 273, in install
    AutoInstall.install(&apos;setuptools&apos;)
  File &quot;/home/buildbot/igalia-jsc32-armv7-ews/JSC-ARMv7-32bits-Build-EWS/build/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py&quot;, line 591, in install
    return all([to_install.install() for to_install in packages])
  File &quot;/home/buildbot/igalia-jsc32-armv7-ews/JSC-ARMv7-32bits-Build-EWS/build/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py&quot;, line 591, in &lt;listcomp&gt;
    return all([to_install.install() for to_install in packages])
  File &quot;/home/buildbot/igalia-jsc32-armv7-ews/JSC-ARMv7-32bits-Build-EWS/build/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py&quot;, line 296, in install
    archive.unpack(temp_location)
  File &quot;/home/buildbot/igalia-jsc32-armv7-ews/JSC-ARMv7-32bits-Build-EWS/build/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py&quot;, line 126, in unpack
    raise IOError(&apos;Failed to find archive at {}&apos;.format(self.path))
OSError: Failed to find archive at /home/buildbot/igalia-jsc32-armv7-ews/JSC-ARMv7-32bits-Build-EWS/build/Tools/Scripts/libraries/autoinstalled/python-3/setuptools-56.2.tar.gz</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792897</commentid>
    <comment_count>1</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-09-13 02:27:26 -0700</bug_when>
    <thetext>I landed r282322 as an emergency fix for EWS/etc bots. I am not sure why this custom cacert is needed in the first place.

Is it due to a Python limitation on Apple platforms? In linux we can usually assume the host has valid root certificates, otherwise, maybe we could bootstrap &apos;certifi&apos; before installing setuptools? That would likely avoid the need for a custom cert in the first place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792944</commentid>
    <comment_count>2</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-09-13 07:23:37 -0700</bug_when>
    <thetext>A large number of Apple&apos;s bots rely on a different pypi source for their packages, and we have a bit of a chicken-egg problem with getting that cacert. Basically, the cacert in webkitcorepy isn&apos;t just for pypi.org.

Will get it updated, this is the cost of owning the cacert....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793821</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-15 13:00:28 -0700</bug_when>
    <thetext>Might want to rename the file to avoid confusion with http://www.cacert.org/ ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795005</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-20 02:22:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/83298684&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795321</commentid>
    <comment_count>5</comment_count>
      <attachid>438742</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-09-20 15:44:35 -0700</bug_when>
    <thetext>Created attachment 438742
Move Linux special case to webkitpy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795326</commentid>
    <comment_count>6</comment_count>
      <attachid>438746</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-09-20 16:00:00 -0700</bug_when>
    <thetext>Created attachment 438746
Add root CA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795328</commentid>
    <comment_count>7</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-09-20 16:02:44 -0700</bug_when>
    <thetext>I think we&apos;d prefer the second one, but if we aren&apos;t going to do that, we should do the first so that the Linux special case is in webkitpy and doesn&apos;t apply to other callers of webkitpy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795669</commentid>
    <comment_count>8</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-09-21 11:14:25 -0700</bug_when>
    <thetext>I&apos;ll try to test tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2073352</commentid>
    <comment_count>9</comment_count>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2024-11-06 17:24:03 -0800</bug_when>
    <thetext>265530@main further changed the code here.

What we should do is probably _always_ load the default OpenSSL certificates (via SSLContext.load_default_certs) and then load our own (via SSLContext.load_verify_locations).

Longer-term, especially on Python 3.10 and later, we may well want to consider using truststore (https://pypi.org/project/truststore/) to create a context using the system trust store, thus avoiding the problems entirely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2084595</commentid>
    <comment_count>10</comment_count>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2025-01-02 16:48:58 -0800</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/38478</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2084752</commentid>
    <comment_count>11</comment_count>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2025-01-03 11:44:23 -0800</bug_when>
    <thetext>I presume this to some extent goes back to Jonathan&apos;s comment at https://bugs.webkit.org/show_bug.cgi?id=214606#c3:

&gt; Rather than fight with the ssl configurations of various different platforms and versions, let&apos;s just include the root cert needed by PyPi and be done with it. Most https requests will end up being made through requests, so the root certificate is really just for for PyPi.

Having to manage an entire certificate store is a lot of work and we should just… not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2085515</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2025-01-07 11:14:10 -0800</bug_when>
    <thetext>Committed 288548@main (d9754b78f0d9): &lt;https://commits.webkit.org/288548@main&gt;

Reviewed commits have been landed. Closing PR #38478 and removing active labels.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438742</attachid>
            <date>2021-09-20 15:44:35 -0700</date>
            <delta_ts>2021-09-20 16:00:40 -0700</delta_ts>
            <desc>Move Linux special case to webkitpy</desc>
            <filename>bug-230211-20210920154434.patch</filename>
            <type>text/plain</type>
            <size>3898</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNzg2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNjc1ZjZjZGYzNWE2NTU5NzUyYjFhYTAzZjhiMmFjZWQz
NzVjZGE5ZC4uMWVhZWRkOWI2M2Y1YmQzYzNmNTg2Y2VjOGVlOTUwMWEwNGZhZjk4ZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDIxLTA5LTIwICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbd2Via2l0cHldIEF1dG9JbnN0YWxsIGJyb2tlbiBvbiBMaW51eAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwMjExCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmll
cy93ZWJraXRjb3JlcHkvc2V0dXAucHk6IEJ1bXAgdmVyaXNvbi4KKyAgICAgICAgKiBTY3JpcHRz
L2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L19faW5pdF9fLnB5OiBEaXR0by4K
KyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L2F1
dG9pbnN0YWxsLnB5OgorICAgICAgICAoQXV0b0luc3RhbGwuX3JlcXVlc3QpOiBTZXR0aW5nIGNh
X3BhdGggc2hvdWxkIGJlIG93bmVkIGJ5IGNhbGxlcnMuCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9fX2luaXRfXy5weTogVW5zZXQgY2FfcGF0aCBmb3IgTGludXguCisKIDIwMjEtMDktMjAg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZWR1Y2UgdXNlIG9m
IG1ha2VSZWZQdHIoKSBhbmQgdXNlIFJlZlB0ciB7IH0gZGlyZWN0bHkKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS9zZXR1cC5weSBiL1Rvb2xzL1Njcmlw
dHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS9zZXR1cC5weQppbmRleCBiMjA0NjU3MDA3OGU3ZmIz
NDYxM2FhYjI0ODdhZTJhN2I4NjgxMDVhLi5mYTkxZjU2OWMzYjIwNDE3OTM5MjViZmExZWIyNGNj
MTIzMGQyNWYyIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3Jl
cHkvc2V0dXAucHkKKysrIGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3Nl
dHVwLnB5CkBAIC0zMCw3ICszMCw3IEBAIGRlZiByZWFkbWUoKToKIAogc2V0dXAoCiAgICAgbmFt
ZT0nd2Via2l0Y29yZXB5JywKLSAgICB2ZXJzaW9uPScwLjExLjAnLAorICAgIHZlcnNpb249JzAu
MTEuMScsCiAgICAgZGVzY3JpcHRpb249J0xpYnJhcnkgY29udGFpbmluZyB2YXJpb3VzIFB5dGhv
biBzdXBwb3J0IGNsYXNzZXMgYW5kIGZ1bmN0aW9ucy4nLAogICAgIGxvbmdfZGVzY3JpcHRpb249
cmVhZG1lKCksCiAgICAgY2xhc3NpZmllcnM9WwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9s
aWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9fX2luaXRfXy5weSBiL1Rvb2xzL1Nj
cmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvX19pbml0X18ucHkKaW5k
ZXggMGI1NjRjODBjZWUwYTA3YWM2NjAwNWUwMzMwOTU5ZTNlMjA1ZjZjNC4uZWEzNTM5OWNkNjg4
Mzg0MWIxZDMyMDI4NmRjODJmYzIzZDhkZmY2OSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9s
aWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9fX2luaXRfXy5weQorKysgYi9Ub29s
cy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L19faW5pdF9fLnB5
CkBAIC00Myw3ICs0Myw3IEBAIGZyb20gd2Via2l0Y29yZXB5LmNhbGxfYnlfbmVlZCBpbXBvcnQg
Q2FsbEJ5TmVlZAogZnJvbSB3ZWJraXRjb3JlcHkuZWRpdG9yIGltcG9ydCBFZGl0b3IKIGZyb20g
d2Via2l0Y29yZXB5LmZpbGVfbG9jayBpbXBvcnQgRmlsZUxvY2sKIAotdmVyc2lvbiA9IFZlcnNp
b24oMCwgMTEsIDApCit2ZXJzaW9uID0gVmVyc2lvbigwLCAxMSwgMSkKIAogZnJvbSB3ZWJraXRj
b3JlcHkuYXV0b2luc3RhbGwgaW1wb3J0IFBhY2thZ2UsIEF1dG9JbnN0YWxsCiBpZiBzeXMudmVy
c2lvbl9pbmZvID4gKDMsIDApOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMv
d2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9hdXRvaW5zdGFsbC5weSBiL1Rvb2xzL1NjcmlwdHMv
bGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvYXV0b2luc3RhbGwucHkKaW5kZXgg
ODNjMmU0N2ExMGFjZDQ5ZDcwODExMGU0MGYxZDk5YTliYzRmODRlZC4uMWQxYzkzOGQ1NzQ0YzQw
ODViMzcyZTU2N2E1YWRmNWE5NGZjMjQzMSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9saWJy
YXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9hdXRvaW5zdGFsbC5weQorKysgYi9Ub29s
cy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L2F1dG9pbnN0YWxs
LnB5CkBAIC00MDgsNyArNDA4LDYgQEAgY2xhc3MgQXV0b0luc3RhbGwob2JqZWN0KToKICAgICBt
YW5pZmVzdCA9IHt9CiAKICAgICAjIFJlbHkgb24gb3VyIG93biBjZXJ0aWZpY2F0ZXMgZm9yIFB5
UGksIHNpbmNlIHdlIHVzZSBQeVBpIHRvIHN0YW5kYXJkaXplIHJvb3QgY2VydGlmaWNhdGVzLgot
ICAgICMgVGhpcyBpcyBub3QgbmVlZGVkIGluIExpbnV4IHBsYXRmb3Jtcy4KICAgICBjYV9jZXJ0
X3BhdGggPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgJ2NhY2VydC5w
ZW0nKQogCiAgICAgX3ByZXZpb3VzX2luZGV4ID0gTm9uZQpAQCAtNDIxLDEwICs0MjAsNyBAQCBj
bGFzcyBBdXRvSW5zdGFsbChvYmplY3QpOgogCiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIF9y
ZXF1ZXN0KGNscywgdXJsLCBjYV9jZXJ0X3BhdGg9Tm9uZSk6Ci0gICAgICAgIGlmIHN5cy5wbGF0
Zm9ybS5zdGFydHN3aXRoKCdsaW51eCcpOgotICAgICAgICAgICAgY2FmaWxlID0gTm9uZQotICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgY2FmaWxlID0gY2FfY2VydF9wYXRoIG9yIGNscy5jYV9j
ZXJ0X3BhdGgKKyAgICAgICAgY2FmaWxlID0gY2FfY2VydF9wYXRoIG9yIGNscy5jYV9jZXJ0X3Bh
dGgKICAgICAgICAgcmV0dXJuIHVybG9wZW4odXJsLCB0aW1lb3V0PWNscy50aW1lb3V0LCBjYWZp
bGU9Y2FmaWxlKQogCiAgICAgQGNsYXNzbWV0aG9kCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L19faW5pdF9fLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9fX2luaXRfXy5w
eQppbmRleCBlYjY4MGU1YTQ4OWNiNjk2M2ZlNDc4MjBkNDJmNmI4OWJjMTIxYTc0Li4wY2RjZWJi
MjFlNTk2ZWVmZDJjNzVlYmYzZmEzOTgwZWExMmUyZDM2IDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L19faW5pdF9fLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvX19p
bml0X18ucHkKQEAgLTMxLDYgKzMxLDggQEAgaWYgc3lzLnBsYXRmb3JtID09ICdkYXJ3aW4nOgog
ICAgICAgICBsaWJyYXJpZXMgPSBvcy5wYXRoLmV4cGFuZHVzZXIoJ34vTGlicmFyeS93ZWJraXRw
eScpCiAKIGZyb20gd2Via2l0Y29yZXB5IGltcG9ydCBBdXRvSW5zdGFsbCwgUGFja2FnZSwgVmVy
c2lvbgoraWYgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ2xpbnV4Jyk6CisgICAgQXV0b0luc3Rh
bGwuY2FfY2VydF9wYXRoID0gTm9uZSAgIyBVc2Ugc3lzdGVtIENBIG9uIExpbnV4CiBBdXRvSW5z
dGFsbC5zZXRfZGlyZWN0b3J5KG9zLnBhdGguam9pbihsaWJyYXJpZXMsICdhdXRvaW5zdGFsbGVk
JywgJ3B5dGhvbi17fScuZm9ybWF0KHN5cy52ZXJzaW9uX2luZm9bMF0pKSkKIAogaWYgc3lzLnZl
cnNpb25faW5mbyA+PSAoMywgNSk6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438746</attachid>
            <date>2021-09-20 16:00:00 -0700</date>
            <delta_ts>2021-09-20 16:01:01 -0700</delta_ts>
            <desc>Add root CA</desc>
            <filename>bug-230211-20210920155959.patch</filename>
            <type>text/plain</type>
            <size>5624</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNzg2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNjc1ZjZjZGYzNWE2NTU5NzUyYjFhYTAzZjhiMmFjZWQz
NzVjZGE5ZC4uMmE0M2RmNWViNTY2MWFjMmM1NzFlMjIzNmI2ZmFhNmFhOGE5M2ZmYyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDIxLTA5LTIwICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbd2Via2l0cHldIEF1dG9JbnN0YWxsIGJyb2tlbiBvbiBMaW51eAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwMjExCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmll
cy93ZWJraXRjb3JlcHkvc2V0dXAucHk6IEJ1bXAgdmVyc2lvbi4KKyAgICAgICAgKiBTY3JpcHRz
L2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L19faW5pdF9fLnB5OiBEaXR0by4K
KyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L2F1
dG9pbnN0YWxsLnB5OgorICAgICAgICAoQXV0b0luc3RhbGwuX3JlcXVlc3QpOiBSZW1vdmUgc3Bl
Y2lhbCBjYXNlIGZvciBMaW51eC4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRj
b3JlcHkvd2Via2l0Y29yZXB5L2NhY2VydC5wZW06IEFkZCByb290LgorCiAyMDIxLTA5LTIwICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVkdWNlIHVzZSBvZiBt
YWtlUmVmUHRyKCkgYW5kIHVzZSBSZWZQdHIgeyB9IGRpcmVjdGx5CmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvc2V0dXAucHkgYi9Ub29scy9TY3JpcHRz
L2xpYnJhcmllcy93ZWJraXRjb3JlcHkvc2V0dXAucHkKaW5kZXggYjIwNDY1NzAwNzhlN2ZiMzQ2
MTNhYWIyNDg3YWUyYTdiODY4MTA1YS4uZmE5MWY1NjljM2IyMDQxNzkzOTI1YmZhMWViMjRjYzEy
MzBkMjVmMiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5
L3NldHVwLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS9zZXR1
cC5weQpAQCAtMzAsNyArMzAsNyBAQCBkZWYgcmVhZG1lKCk6CiAKIHNldHVwKAogICAgIG5hbWU9
J3dlYmtpdGNvcmVweScsCi0gICAgdmVyc2lvbj0nMC4xMS4wJywKKyAgICB2ZXJzaW9uPScwLjEx
LjEnLAogICAgIGRlc2NyaXB0aW9uPSdMaWJyYXJ5IGNvbnRhaW5pbmcgdmFyaW91cyBQeXRob24g
c3VwcG9ydCBjbGFzc2VzIGFuZCBmdW5jdGlvbnMuJywKICAgICBsb25nX2Rlc2NyaXB0aW9uPXJl
YWRtZSgpLAogICAgIGNsYXNzaWZpZXJzPVsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGli
cmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvX19pbml0X18ucHkgYi9Ub29scy9TY3Jp
cHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L19faW5pdF9fLnB5CmluZGV4
IDBiNTY0YzgwY2VlMGEwN2FjNjYwMDVlMDMzMDk1OWUzZTIwNWY2YzQuLmVhMzUzOTljZDY4ODM4
NDFiMWQzMjAyODZkYzgyZmMyM2Q4ZGZmNjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvbGli
cmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvX19pbml0X18ucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9fX2luaXRfXy5weQpA
QCAtNDMsNyArNDMsNyBAQCBmcm9tIHdlYmtpdGNvcmVweS5jYWxsX2J5X25lZWQgaW1wb3J0IENh
bGxCeU5lZWQKIGZyb20gd2Via2l0Y29yZXB5LmVkaXRvciBpbXBvcnQgRWRpdG9yCiBmcm9tIHdl
YmtpdGNvcmVweS5maWxlX2xvY2sgaW1wb3J0IEZpbGVMb2NrCiAKLXZlcnNpb24gPSBWZXJzaW9u
KDAsIDExLCAwKQordmVyc2lvbiA9IFZlcnNpb24oMCwgMTEsIDEpCiAKIGZyb20gd2Via2l0Y29y
ZXB5LmF1dG9pbnN0YWxsIGltcG9ydCBQYWNrYWdlLCBBdXRvSW5zdGFsbAogaWYgc3lzLnZlcnNp
b25faW5mbyA+ICgzLCAwKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dl
YmtpdGNvcmVweS93ZWJraXRjb3JlcHkvYXV0b2luc3RhbGwucHkgYi9Ub29scy9TY3JpcHRzL2xp
YnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L2F1dG9pbnN0YWxsLnB5CmluZGV4IDgz
YzJlNDdhMTBhY2Q0OWQ3MDgxMTBlNDBmMWQ5OWE5YmM0Zjg0ZWQuLjFkMWM5MzhkNTc0NGM0MDg1
YjM3MmU1NjdhNWFkZjVhOTRmYzI0MzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFy
aWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvYXV0b2luc3RhbGwucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9hdXRvaW5zdGFsbC5w
eQpAQCAtNDA4LDcgKzQwOCw2IEBAIGNsYXNzIEF1dG9JbnN0YWxsKG9iamVjdCk6CiAgICAgbWFu
aWZlc3QgPSB7fQogCiAgICAgIyBSZWx5IG9uIG91ciBvd24gY2VydGlmaWNhdGVzIGZvciBQeVBp
LCBzaW5jZSB3ZSB1c2UgUHlQaSB0byBzdGFuZGFyZGl6ZSByb290IGNlcnRpZmljYXRlcy4KLSAg
ICAjIFRoaXMgaXMgbm90IG5lZWRlZCBpbiBMaW51eCBwbGF0Zm9ybXMuCiAgICAgY2FfY2VydF9w
YXRoID0gb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICdjYWNlcnQucGVt
JykKIAogICAgIF9wcmV2aW91c19pbmRleCA9IE5vbmUKQEAgLTQyMSwxMCArNDIwLDcgQEAgY2xh
c3MgQXV0b0luc3RhbGwob2JqZWN0KToKIAogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBfcmVx
dWVzdChjbHMsIHVybCwgY2FfY2VydF9wYXRoPU5vbmUpOgotICAgICAgICBpZiBzeXMucGxhdGZv
cm0uc3RhcnRzd2l0aCgnbGludXgnKToKLSAgICAgICAgICAgIGNhZmlsZSA9IE5vbmUKLSAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgIGNhZmlsZSA9IGNhX2NlcnRfcGF0aCBvciBjbHMuY2FfY2Vy
dF9wYXRoCisgICAgICAgIGNhZmlsZSA9IGNhX2NlcnRfcGF0aCBvciBjbHMuY2FfY2VydF9wYXRo
CiAgICAgICAgIHJldHVybiB1cmxvcGVuKHVybCwgdGltZW91dD1jbHMudGltZW91dCwgY2FmaWxl
PWNhZmlsZSkKIAogICAgIEBjbGFzc21ldGhvZApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9s
aWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9jYWNlcnQucGVtIGIvVG9vbHMvU2Ny
aXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9jYWNlcnQucGVtCmluZGV4
IGVkMmNhODJkMzY5NGIyNjc0YTBhNDMyYTA5MWU2YjZiNTE1ZDlkYWUuLjYzNjlkNWI3M2Q5MDBm
Nzg3ZGE1ODA3NzFmZTkxNDg0ZjI5YjdhNWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvbGli
cmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvY2FjZXJ0LnBlbQorKysgYi9Ub29scy9T
Y3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L2NhY2VydC5wZW0KQEAg
LTU3LDMgKzU3LDMyIEBAIFl6aTlSS1IvNUNZckNzU1hhUTNwak9MQUVGZTR5SFlTa1ZYeVNHbll2
Q29DV3c5RTFDQXgyL1M2Y0NaZGtHQ2UKIHZFc1hDUysweXg1RGFNa0hKOEhTWFBmcUlibG9FcHc4
bkwrZS9JQmNtMlBON0VlcUpTZG5vRGZ6QUlKOVZOZXAKICtPa3VFNk4zNkI5SwogLS0tLS1FTkQg
Q0VSVElGSUNBVEUtLS0tLQorCisjIFN1YmplY3Q6IEM9R0IsIFNUPUdyZWF0ZXIgTWFuY2hlc3Rl
ciwgTD1TYWxmb3JkLCBPPUNvbW9kbyBDQSBMaW1pdGVkLCBDTj1BQUEgQ2VydGlmaWNhdGUgU2Vy
dmljZXMKKyMgU0hBMSBGaW5nZXJwcmludDogRDE6RUI6MjM6QTQ6NkQ6MTc6RDY6OEY6RDk6MjU6
NjQ6QzI6RjE6RjE6NjA6MTc6NjQ6RDg6RTM6NDkKKyMgU0hBMjU2IEZpbmdlcnByaW50OiBENzpB
NzpBMDpGQjo1RDo3RToyNzozMTpENzo3MTpFOTo0ODo0RTpCQzpERTpGNzoxRDo1RjowQzozRTow
QToyOTo0ODo3ODoyQjpDODozRTpFMDpFQTo2OTo5RTpGNAorLS0tLS1CRUdJTiBDRVJUSUZJQ0FU
RS0tLS0tCitNSUlFTWpDQ0F4cWdBd0lCQWdJQkFUQU5CZ2txaGtpRzl3MEJBUVVGQURCN01Rc3dD
UVlEVlFRR0V3SkhRakViCitNQmtHQTFVRUNBd1NSM0psWVhSbGNpQk5ZVzVqYUdWemRHVnlNUkF3
RGdZRFZRUUhEQWRUWVd4bWIzSmtNUm93CitHQVlEVlFRS0RCRkRiMjF2Wkc4Z1EwRWdUR2x0YVhS
bFpERWhNQjhHQTFVRUF3d1lRVUZCSUVObGNuUnBabWxqCitZWFJsSUZObGNuWnBZMlZ6TUI0WERU
QTBNREV3TVRBd01EQXdNRm9YRFRJNE1USXpNVEl6TlRrMU9Wb3dlekVMCitNQWtHQTFVRUJoTUNS
MEl4R3pBWkJnTlZCQWdNRWtkeVpXRjBaWElnVFdGdVkyaGxjM1JsY2pFUU1BNEdBMVVFCitCd3dI
VTJGc1ptOXlaREVhTUJnR0ExVUVDZ3dSUTI5dGIyUnZJRU5CSUV4cGJXbDBaV1F4SVRBZkJnTlZC
QU1NCitHRUZCUVNCRFpYSjBhV1pwWTJGMFpTQlRaWEoyYVdObGN6Q0NBU0l3RFFZSktvWklodmNO
QVFFQkJRQURnZ0VQCitBRENDQVFvQ2dnRUJBTDVBbmZSdTRlcDJoeHhOUlVTT3ZrYklnd2Fkd1Ny
K0dCK081QUw2ODZ0ZFVJb1dNUXVhCitCdERGY0NMTlNTMVVZOHkyYm1oR0MxUHF5MHdrd0x4eVR1
cnhGYTcwVkpvU0NzTjZzak5nNHRxSlZmTWlXUFBlCiszTS92ZzRhaWpKUlBuMmp5bUpCR2hDZkhk
ci9qekRVc2kxNEhaR1dDd0Vpd3FKSDVZWjkySUZDb2tjZG10ZXQ0CitZZ05XOElvYUUrb3hveDZn
bWYwNDl2WW5NbGh2Qi9WcnVQc1VLNiszcXN6V1kxOXpqTm9GbWFnNHFNc1hlRFpSCityT21lOUhn
NmpjOFAyVUxpbUF5ckw1OE9BZDd2bjVsSjhTM2ZySFJORzVpMVI4WGxLZEg1a0JqSFlweStnOGNt
CitlejZLSmNmQTNaM21OV2dRSUoyUDJON1N3NFNjRFY3b0w4a0NBd0VBQWFPQndEQ0J2VEFkQmdO
VkhRNEVGZ1FVCitvQkVLSXo2VzhRZnM0cThwNzRLbGY5QXdwTFF3RGdZRFZSMFBBUUgvQkFRREFn
RUdNQThHQTFVZEV3RUIvd1FGCitNQU1CQWY4d2V3WURWUjBmQkhRd2NqQTRvRGFnTklZeWFIUjBj
RG92TDJOeWJDNWpiMjF2Wkc5allTNWpiMjB2CitRVUZCUTJWeWRHbG1hV05oZEdWVFpYSjJhV05s
Y3k1amNtd3dOcUEwb0RLR01HaDBkSEE2THk5amNtd3VZMjl0CitiMlJ2TG01bGRDOUJRVUZEWlhK
MGFXWnBZMkYwWlZObGNuWnBZMlZ6TG1OeWJEQU5CZ2txaGtpRzl3MEJBUVVGCitBQU9DQVFFQUNG
YjhBdkNiNlArayt0Wjd4a1NBemsvRXhmWUFXTXltdHJ3VVNXZ0VkdWptN2wzc0FnOWcxbzFRCitH
RThtVGdIajVyQ2w3cis4ZEZSQnYvMzhFcmpIVDFyMGlXQUZmMkMzQlVyejl2SEN2OFM1ZElhMkxY
MXJ6Tkx6CitSdDB2eHVCcXc4TTBBeXg5bHQxYXdnNm5DcG5CQll1ckRDL3pYRHJQYkRkVkNZZmVV
MEJzV08vOHRxdGxiZ1QyCitHOXc4NEZvVnhwN1o4VmxJTUNGbEEyenM2U0Z6N0pzRG9lQTNyYUFW
R0kvNnVnTE9weXlwRUJNczFPVUlKcXNpCitsMkQ0a0Y1MDFLS2FVNzN5cVdqZ29tN0MxMnl4b3cr
ZXYrdG81MWJ5cnZMakt6ZzZDWUcxYTRYWHZpM3RQeHEzCitzbVBpOVdJc2d0UnFBRUZROFRtRG41
WHBOcGFZYmc9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>