![]() |
#1 |
Zealot
![]() Posts: 103
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,251
Karma: 27110894
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,251
Karma: 27110894
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 05:19 AM. |
![]() |
![]() |
![]() |
#4 |
Zealot
![]() Posts: 103
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:-)).
|
![]() |
![]() |
![]() |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
recipe to ignore image size constraint on web page | rutmang | Recipes | 4 | 07-31-2014 04:52 PM |
Running recipe error: Python function terminated unexpectedly (Error Code: 1) | jpassarella | Recipes | 0 | 10-05-2012 12:54 PM |