Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support unverified SSL certificates #74

Open
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

larsklitzke
Copy link

Issue type
  • Feature
Summary

I have a self hosted OpenStreetMap server which can only be accessed using SSL connections. The certificates are however generated using certbot and thus queries cannot be send using overpy due to the fact that those certificates are by default marked as unverified.

Hence, to fix this issue, I've added a new optional parameter context to the constructor of the Overpass object in order to define an optional ssl context which is passed to the call of urlopen in the query method.

So, if you want to connect to a Overpass server with a self signed certificate, create a new ssl context with:

ssl_context = ssl._create_unverified_context()

and setup a new Overpass object using that context

opy = overpy.Overpass(url='https://example.com/api/interpreter', context=ssl_context)

…an optinal ssl context for the query. This is required in order to send a query to a site which has an unverified ssl certificate, i.e a self signed certificate.
the context parameter from the query function to the constructor.
@coveralls
Copy link

coveralls commented Jul 16, 2018

Coverage Status

Coverage decreased (-0.6%) to 93.998% when pulling bfced66 on larsklitzke:master into db8f80e on DinoTools:master.

@larsklitzke
Copy link
Author

Well, it seems that the context parameter for urlopen exists in 2.7.9 <= Python < 3 and was reintroduced in 3.4.3. Thus, the test builds for Python 3.0 - 3.3 are broken. This issue was also discussed on stackoverflow but the only answer was to upgrade Python.

So, either merge this patch to the master branch and applications using Overpy with a Python3 version of < 3.4.3 will break, create a new branch which only support Python > 3.3 or simply neglect that pull request.

larsklitzke and others added 7 commits October 9, 2018 13:51
Sometimes, the openstreetmap server is inconsistent in that way that
the list of node ids of a `Way` contains nodes that actually do not exist.

In that case, no nodes of a `Way` will be retrieved even if there are
valid nodes.

You can now set the strict_mode to False so that invalid nodes will be
removed from a Way.

The default behaviour still is to try to retrieve the missing nodes and
if the node does not exist, a DataIncomplete exception is thrown.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants