Subject: bug#18600: 24.3.94; EWW fails to check https certificates

From: Mark H Weaver <[email-masked]>
Date: Sat, 04 Oct 2014 19:24:41 -0400

Ted Zlatanov <[email-masked]> writes:

> On Fri, 03 Oct 2014 19:01:42 -0400 Glenn Morris <[email-masked]> wrote: 
>
> GM> Mark H Weaver wrote:
>>> I used EWW to visit an https website that uses a self-signed and
>>> long-expired https certificate.  It failed to notify me of any problem.
>
> GM> Setting gnutls-verify-error non-nil may help (I don't know what it does
> GM> with self-signed certificates).
>
> Emacs will reject such certificates then. I tested that as part of
> http://debbugs.gnu.org/16978 and would appreciate Mark's verification.

Yes, that works, thanks.

> After 24.4 (now 25.1) is released it will be t by default.  Mark, can we
> close this bug since http://debbugs.gnu.org/16978 already has all the info?

I almost closed the bug myself, but on second thought I think this case
of eww https warrants special consideration, independent of the more
general question of how 'open-gnutls-stream' should behave by default.

There are a few reasons for this:

1. In the case of imaps, smtps, xmpp, etc, the most common use case is
   to connect to a single server only for each of these protocols, and
   very often that's one's own server with self-signed certs.

2. In the case of https, the typical use cases are very different, as
   are the expectations.  When browsing the web, one typically talks to
   a very large number of https servers.  More often than not, these
   servers have certificates signed by a well-known CA.  (Ideally it
   should be possible to disable checking based on URL).

3. Emacs 24.4 will be the first release that includes eww, so there are
   no preexisting users of eww that would be annoyed by suddenly having
   their existing functionality stop working.

With these in mind, I have two recommendations:

* I believe that eww https should check certificates by default in 24.4,
  even though other tls connections are tolerant by default.

* At minimum, it should be possible to enable certificate checking for
  eww https connections while still allowing self-signed certificates
  for other uses of 'open-gnutls-stream' such as imaps and smtps.  This
  is fairly common case.

IMO, anyway.  If you disagree, I'll defer to your judgment, but my
feeling is that the current behavior would not be well received.

    Thanks,
      Mark