On 08/11/2016 08:03, DJ Lucas wrote:
On 11/07/2016 02:21 AM, Wayne Blaszczyk wrote:
On Sun, 2016-11-06 at 13:54 -0600, DJ Lucas wrote:
On 11/06/2016 11:51 AM, Bruce Dubbs wrote:
Pierre Labastie wrote:
As far as I understand, Perl LWP is required for make-ca-bundle.pl,
which is
included in curl package, but otherwise, make-ca-bundle.pl and Perl
LWP are
not needed for curl. Strictly speaking, Perl LWP is therefore a
dependency of
curl, but is not used by curl...
I would say that mixture between CA-certificates retrieval and curl
library is
all but KISS.
So why not separate things:
- on CA-certificates page: put the curl tarball as additional
download
for
CA-certificates, give instruction to install make-ca-bundle.pl
from that
package, and mention the Perl LWP dep.
- on the curl page: remove the make-ca-bundle.pl installation (but
keep the
cacerts as recommended at runtime).
I'm good with this, in fact, we could probably link to the script in
curl's VCS, but see below.
Thoughts?
Pierre
PS : I do not really like the idea of having Perl LWP as a dep for
cacerts.
Isn't it possible to modify the script to only use standard perl
modules (or
script in another language)?
It's difficult, but not impossible. I had already started looking into
this, but pivoted to the script included with curl. The certdata.txt
file is DER/Octal (PITA to do in all bash with assistance from already
installed binaries). Also, we need to expand the make-ca.sh script that
we used previously to check for additional CKA_TRUST* values. The old
let a few certs slip that we don't need (8 as of today's nss tip, but
they don't cause harm). We could certainly go back to something custom
(as we did before) if LWP is too much to ask for. I don't personally
think it is, but it wasn't discussed on list.
Or we could do like we did before and pull the data to anduin and have
users get that.
We can also easily go back to what we had before, and that was a
consideration before I made the changes. Before we do that, however,
I'd
like to discuss the goals that were in mind for the new setup, and see
if anybody has objections, suggestions for change, or more questions.
I just like to put my 2 cents. There was one thing I didn't like
about the
previous method, and that was that the certdata.txt file was kept at
anduin.
There was no checksum or signing to this file, and therefore to my
mind, was
untrustworthy. So much so, I actualy slightly modified the previous
script to
initially take the file from the nss tarball. Later on I changed to the
firefox tarball.
I don't particular like pulling in libwww-perl as it pulls in 17
modules, but
I can live with it.
If you did go back to the way before, could you consider extracting the
certdata.txt from a distribution tarball?
So, how does NSS being a dependency sit with everyone (since it's our
source for the browsers anyway)? We avoid downloading an external
file, it's a single script (which is actually readable with no crazy
ranges), we get the local directory, a shared nssdb with only the
added certs (internal ones are still used), there are no other
dependencies, and everything is synced. I also added back in the dump
text for the individual pem files (so we have a text account of the
CKA_TRUST bits), as well as other useful information.
I like this a lot...much cleaner than the other two. :-) It needs some
testing, but I think it's fairly sane. I'm also not sure about the
trustargs for the local certs. I went with CT,c,c, but was thinking
maybe CT,C,c would be more appropriate. See
https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/tools/NSS_Tools_certutil
for a description. Just run make-ca.sh after you update NSS and all
will be in sync again.
There is a bit more to it than just that to actually used the shared
DB for firefox/seamonkey/thunderbird/chrome, but that's the gist of
getting it all together.
I think there are two aspects of the problem:
- CA certificates are an important part of system security, so they
should be handled as carefully as possible. What DJ proposes is very
good in that respect, AFAICT
- BLFS systems should be easy to build. CA-certificates are needed early
in the build, because a lot of download sites are https nowadays. That's
why including too many dependencies is annoying. NSS is very good in
this respect, since it only adds NSPR and sqlite (as recommended). But
sqlite is needed early too, because it is used in subversion, which is
itself needed if one wants to use the development book...
So +1 for me
Pierre
--
http://lists.linuxfromscratch.org/listinfo/blfs-dev
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page