|
|
#1 |
|
Zealot
![]() Posts: 106
Karma: 10
Join Date: Sep 2013
Device: Kindle Paperwhite (2012)
|
How to ignore a certificat error in a recipe?
I am the author of this recipe: https://github.com/kovidgoyal/calibr...agazine.recipe that stopped working today because the server hosting the content apparently did something to its configuration. When I try to login via Opera 12, it says that certificates mismatch (see screenshot for details). Firefox complains too. I can choose to ignore the message and it allows me to login.
Calibre fails saying this: Code:
calibre, version 2.27.0 (linux2, isfrozen: True)
Conversion Error: Failed: Fetch news from Respekt - Magazine
Fetch news from Respekt - Magazine
Resolved conversion options
calibre version: 2.27.0
{'asciiize': False,
'author_sort': None,
'authors': None,
'base_font_size': 0,
'book_producer': None,
'change_justification': 'original',
'chapter': None,
'chapter_mark': 'pagebreak',
'comments': None,
'cover': None,
'debug_pipeline': None,
'dehyphenate': True,
'delete_blank_paragraphs': True,
'disable_font_rescaling': False,
'dont_compress': False,
'dont_download_recipe': False,
'duplicate_links_in_toc': False,
'embed_all_fonts': False,
'embed_font_family': None,
'enable_heuristics': False,
'expand_css': False,
'extra_css': None,
'extract_to': None,
'filter_css': None,
'fix_indents': True,
'font_size_mapping': None,
'format_scene_breaks': True,
'html_unwrap_factor': 0.4,
'input_encoding': None,
'input_profile': <calibre.customize.profiles.InputProfile object at 0x7fd2c8be0310>,
'insert_blank_line': False,
'insert_blank_line_size': 0.5,
'insert_metadata': False,
'isbn': None,
'italicize_common_cases': True,
'keep_ligatures': False,
'language': None,
'level1_toc': None,
'level2_toc': None,
'level3_toc': None,
'line_height': 0,
'linearize_tables': False,
'lrf': False,
'margin_bottom': 0.0,
'margin_left': 0.0,
'margin_right': 0.0,
'margin_top': 0.0,
'markup_chapter_headings': True,
'max_toc_links': 50,
'minimum_line_height': 120.0,
'mobi_file_type': 'old',
'mobi_ignore_margins': False,
'mobi_keep_original_images': False,
'mobi_toc_at_start': False,
'no_chapters_in_toc': False,
'no_inline_navbars': True,
'no_inline_toc': False,
'output_profile': <calibre.customize.profiles.KindlePaperWhiteOutput object at 0x7fd2c8be0a50>,
'page_breaks_before': None,
'personal_doc': '[PDOC]',
'prefer_author_sort': False,
'prefer_metadata_cover': False,
'pretty_print': False,
'pubdate': None,
'publisher': None,
'rating': None,
'read_metadata_from_opf': None,
'remove_fake_margins': True,
'remove_first_image': False,
'remove_paragraph_spacing': False,
'remove_paragraph_spacing_indent_size': 1.5,
'renumber_headings': True,
'replace_scene_breaks': '',
'search_replace': None,
'series': None,
'series_index': None,
'share_not_sync': False,
'smarten_punctuation': False,
'sr1_replace': '',
'sr1_search': '',
'sr2_replace': '',
'sr2_search': '',
'sr3_replace': '',
'sr3_search': '',
'start_reading_at': None,
'subset_embedded_fonts': False,
'tags': None,
'test': False,
'timestamp': None,
'title': None,
'title_sort': None,
'toc_filter': None,
'toc_threshold': 6,
'toc_title': None,
'unsmarten_punctuation': False,
'unwrap_lines': True,
'use_auto_toc': False,
'verbose': 2}
InputFormatPlugin: Recipe Input running
Using custom recipe
Traceback (most recent call last):
File "site.py", line 63, in main
File "site-packages/calibre/utils/ipc/worker.py", line 193, in main
File "site-packages/calibre/gui2/convert/gui_conversion.py", line 25, in gui_convert
File "site-packages/calibre/ebooks/conversion/plumber.py", line 1042, in run
File "site-packages/calibre/customize/conversion.py", line 241, in __call__
File "site-packages/calibre/ebooks/conversion/plugins/recipe_input.py", line 116, in convert
File "site-packages/calibre/web/feeds/news.py", line 918, in __init__
File "<string>", line 62, in get_browser
File "site-packages/mechanize/_mechanize.py", line 541, in submit
File "site-packages/mechanize/_mechanize.py", line 203, in open
File "site-packages/mechanize/_mechanize.py", line 230, in _mech_open
File "site-packages/mechanize/_opener.py", line 204, in open
File "site-packages/mechanize/_urllib2_fork.py", line 457, in http_response
File "site-packages/mechanize/_opener.py", line 221, in error
File "site-packages/mechanize/_urllib2_fork.py", line 332, in _call_chain
File "site-packages/mechanize/_urllib2_fork.py", line 571, in http_error_302
File "site-packages/mechanize/_mechanize.py", line 203, in open
File "site-packages/mechanize/_mechanize.py", line 230, in _mech_open
File "site-packages/mechanize/_opener.py", line 193, in open
File "site-packages/mechanize/_urllib2_fork.py", line 344, in _open
File "site-packages/mechanize/_urllib2_fork.py", line 332, in _call_chain
File "site-packages/mechanize/_urllib2_fork.py", line 1170, in https_open
File "site-packages/mechanize/_urllib2_fork.py", line 1115, in do_open
File "httplib.py", line 1001, in request
File "httplib.py", line 1035, in _send_request
File "httplib.py", line 997, in endheaders
File "httplib.py", line 850, in _send_output
File "httplib.py", line 812, in send
File "httplib.py", line 1212, in connect
File "ssl.py", line 350, in wrap_socket
File "ssl.py", line 566, in __init__
File "ssl.py", line 796, in do_handshake
File "ssl.py", line 273, in match_hostname
CertificateError: hostname 'sso.respekt.cz' doesn't match '*.ihned.cz'
I use this method: Code:
def get_browser(self):
br = BasicNewsRecipe.get_browser(self)
if self.username is not None and self.password is not None:
br.open('https://muj-ucet.ihned.cz/')
br.select_form(name='login')
br['login[nick]'] = self.username
br['login[pass]'] = self.password
br.submit()
return br
|
|
|
|
|
|
#2 |
|
creator of calibre
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 45,622
Karma: 28549046
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
|
There is no easy way to do that. mechanize (which is what the recipe system uses) was developed long before the modern python's ssl support, so it doesn't have support for fine tuning the SSL implementation via ssl contexts. You could monkey patch
mechanize._urllib2_fork.HTTPSConnectionFactory to do it |
|
|
|
| Advert | |
|
|
|
|
#3 |
|
creator of calibre
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 45,622
Karma: 28549046
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
|
Here's a commit that allows you to easily turn off ssl cerification
https://github.com/kovidgoyal/calibr...e976c91e338a09 like this: br = BasicNewsRecipe.get_browser(self, verify_ssl_certificates=False) Last edited by kovidgoyal; 06-02-2015 at 06:19 AM. |
|
|
|
|
|
#4 |
|
Zealot
![]() Posts: 106
Karma: 10
Join Date: Sep 2013
Device: Kindle Paperwhite (2012)
|
Thanks a lot! I will try it once I manage to build from source (or fail and wait till next Friday:-)).
|
|
|
|
![]() |
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| recipe to ignore image size constraint on web page | rutmang | Recipes | 4 | 07-31-2014 05:52 PM |
| Running recipe error: Python function terminated unexpectedly (Error Code: 1) | jpassarella | Recipes | 0 | 10-05-2012 01:54 PM |