Coder Social home page Coder Social logo

Comments (6)

EdJoPaTo avatar EdJoPaTo commented on June 22, 2024

I looked into it and dump some links for future me (or someone else) to look into it at a later time.

Something useful might be a way to ignore certificate errors (via ClientBuilder::danger_accept_invalid_certs).

Currently rustls is used instead of reqwests default OpenSSL. Maybe enabling rustls-native-certs might help in this regards. reqwest has the feature flag rustls-tls-native-roots for this.
The crate lists some pros and cons if it should be used or not. Any thoughts on them?

from website-stalker.

rEnr3n avatar rEnr3n commented on June 22, 2024

This is just my opinion but from what I can tell this is the major con of rustls-native-certs:

  • The OS update system may, in fact, be quite poor at keeping the root certificates up-to-date

This is not really an issue for me as I use a rolling-release distro but it's definitely an issue for those using "stable" distros.

Is it possible to install both rustls-native-certs and webpki-roots at the same time? The idea is to choose between the two depending on which OS it is installed. If that's not possible I would lean on ignoring certificate errors. I don't expect most people to use this application against non-ICANN domains. I can settle for this as a temporary workaround.

from website-stalker.

EdJoPaTo avatar EdJoPaTo commented on June 22, 2024

yeah, I think optional accept_invalid_certs with the built in certificates are a good way to work around it here.
Its probably a good idea to configure this per entry and not globally for all entries? More explicit ignore this. Also it takes more effort to do so → its easier to not just ignore everything.

When thinking about it, as the certificates are bundled the binary has to be fairly up to date in order to ensure up to date certificates. So its either the OS or the binary itself in this case.

from website-stalker.

rEnr3n avatar rEnr3n commented on June 22, 2024

Its probably a good idea to configure this per entry and not globally for all entries?

Better if both options are available.

When thinking about it, as the certificates are bundled the binary has to be fairly up to date in order to ensure up to date certificates.

That's a problem if you, the developer, becomes inactive for a long time. Sites could become inaccessible just by using an outdated set of certificates.

from website-stalker.

EdJoPaTo avatar EdJoPaTo commented on June 22, 2024

I think staying with rustls seems like the best choice. Building with updated dependencies will be possible even if become inactive as this is an open-source tool which can be self compiled. Also rustls isnt using external non-rust-stuff which is probably a safer thing to do in general. We just need to be aware that regular updates are a must when rustls is included in the binary and not on system level.

I added accept_invalid_certs only as site config in order to limit the usage of it. Its easier to not use it which should be the default.

Regarding the self signed certificates using the system store might be a good solution but as long as there isnt bigger interest I think using accept_invalid_certs is just the way with less added complexity to go.

from website-stalker.

EdJoPaTo avatar EdJoPaTo commented on June 22, 2024

As this feature seems to be working generally I will close this issue. If there are other feature requests or ideas feel free to comment or open a new issue.

from website-stalker.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.