##// END OF EJS Templates
sslutil: abort when unable to verify peer connection (BC)...
Gregory Szorc -
r29411:e1778b9c default
parent child Browse files
Show More
@@ -207,8 +207,9 b' def _hostsettings(ui, hostname):'
207 207 else:
208 208 # At this point we don't have a fingerprint, aren't being
209 209 # explicitly insecure, and can't load CA certs. Connecting
210 # at this point is insecure. But we do it for BC reasons.
211 # TODO abort here to make secure by default.
210 # is insecure. We allow the connection and abort during
211 # validation (once we have the fingerprint to print to the
212 # user).
212 213 s['verifymode'] = ssl.CERT_NONE
213 214
214 215 assert s['verifymode'] is not None
@@ -413,11 +414,16 b' def validatesocket(sock):'
413 414 'fingerprint %s') % (host, nice),
414 415 hint=_('check %s configuration') % section)
415 416
417 # Security is enabled but no CAs are loaded. We can't establish trust
418 # for the cert so abort.
416 419 if not sock._hgstate['caloaded']:
417 ui.warn(_('warning: certificate for %s not verified '
418 '(set hostsecurity.%s:certfingerprints=%s or web.cacerts '
419 'config settings)\n') % (host, host, nicefingerprint))
420 return
420 raise error.Abort(
421 _('unable to verify security of %s (no loaded CA certificates); '
422 'refusing to connect') % host,
423 hint=_('see https://mercurial-scm.org/wiki/SecureConnections for '
424 'how to configure Mercurial to avoid this error or set '
425 'hostsecurity.%s:fingerprints=%s to trust this server') %
426 (host, nicefingerprint))
421 427
422 428 msg = _verifycert(peercert2, host)
423 429 if msg:
@@ -103,10 +103,15 b' Defining both per-host certificate and a'
103 103
104 104 $ DISABLECACERTS="--config devel.disableloaddefaultcerts=true"
105 105
106 clone via pull
106 Inability to verify peer certificate will result in abort
107 107
108 108 $ hg clone https://localhost:$HGPORT/ copy-pull $DISABLECACERTS
109 warning: certificate for localhost not verified (set hostsecurity.localhost:certfingerprints=sha256:62:09:97:2f:97:60:e3:65:8f:12:5d:78:9e:35:a1:36:7a:65:4b:0e:9f:ac:db:c3:bc:6e:b6:a3:c0:16:e0:30 or web.cacerts config settings)
109 abort: unable to verify security of localhost (no loaded CA certificates); refusing to connect
110 (see https://mercurial-scm.org/wiki/SecureConnections for how to configure Mercurial to avoid this error or set hostsecurity.localhost:fingerprints=sha256:62:09:97:2f:97:60:e3:65:8f:12:5d:78:9e:35:a1:36:7a:65:4b:0e:9f:ac:db:c3:bc:6e:b6:a3:c0:16:e0:30 to trust this server)
111 [255]
112
113 $ hg clone --insecure https://localhost:$HGPORT/ copy-pull
114 warning: connection security to localhost is disabled per current settings; communication is susceptible to eavesdropping and tampering
110 115 requesting all changes
111 116 adding changesets
112 117 adding manifests
@@ -133,7 +138,13 b' pull without cacert'
133 138 $ echo "changegroup = printenv.py changegroup" >> .hg/hgrc
134 139 $ hg pull $DISABLECACERTS
135 140 pulling from https://localhost:$HGPORT/
136 warning: certificate for localhost not verified (set hostsecurity.localhost:certfingerprints=sha256:62:09:97:2f:97:60:e3:65:8f:12:5d:78:9e:35:a1:36:7a:65:4b:0e:9f:ac:db:c3:bc:6e:b6:a3:c0:16:e0:30 or web.cacerts config settings)
141 abort: unable to verify security of localhost (no loaded CA certificates); refusing to connect
142 (see https://mercurial-scm.org/wiki/SecureConnections for how to configure Mercurial to avoid this error or set hostsecurity.localhost:fingerprints=sha256:62:09:97:2f:97:60:e3:65:8f:12:5d:78:9e:35:a1:36:7a:65:4b:0e:9f:ac:db:c3:bc:6e:b6:a3:c0:16:e0:30 to trust this server)
143 [255]
144
145 $ hg pull --insecure
146 pulling from https://localhost:$HGPORT/
147 warning: connection security to localhost is disabled per current settings; communication is susceptible to eavesdropping and tampering
137 148 searching for changes
138 149 adding changesets
139 150 adding manifests
@@ -63,8 +63,9 b' Without certificates:'
63 63 (using smtps)
64 64 sending mail: smtp host localhost, port * (glob)
65 65 (verifying remote certificate)
66 warning: certificate for localhost not verified (set hostsecurity.localhost:certfingerprints=sha256:62:09:97:2f:97:60:e3:65:8f:12:5d:78:9e:35:a1:36:7a:65:4b:0e:9f:ac:db:c3:bc:6e:b6:a3:c0:16:e0:30 or web.cacerts config settings)
67 sending [PATCH] a ...
66 abort: unable to verify security of localhost (no loaded CA certificates); refusing to connect
67 (see https://mercurial-scm.org/wiki/SecureConnections for how to configure Mercurial to avoid this error or set hostsecurity.localhost:fingerprints=sha256:62:09:97:2f:97:60:e3:65:8f:12:5d:78:9e:35:a1:36:7a:65:4b:0e:9f:ac:db:c3:bc:6e:b6:a3:c0:16:e0:30 to trust this server)
68 [255]
68 69
69 70 With global certificates:
70 71
General Comments 0
You need to be logged in to leave comments. Login now