{"id":18146,"date":"2019-02-21T06:46:31","date_gmt":"2019-02-21T06:46:31","guid":{"rendered":"https:\/\/developer.kore.ai\/developer-2\/?post_type=docs&#038;p=16871"},"modified":"2021-03-25T06:53:25","modified_gmt":"2021-03-25T06:53:25","slug":"enabling-2-way-ssl-for-service-nodes","status":"publish","type":"post","link":"https:\/\/developer.kore.ai\/v7-0\/docs\/bots\/bot-builder-tool\/dialog-task\/enabling-2-way-ssl-for-service-nodes\/","title":{"rendered":"Enabling 2-way SSL for Service nodes"},"content":{"rendered":"<section class=\"l-section wpb_row height_auto\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row type_default valign_top\"><div class=\"vc_col-sm-12 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\">\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<p><strong>2-way SSL authentication<\/strong> is a certificate-based mutual authentication protocol that refers to two parties authenticating each other by verifying the provided digital certificate so that both parties are assured of the others&#8217; identity. It refers to a client (web browser or client application) authenticating themselves to a server (website or server application) and the server also authenticating itself to the client through verifying the public key certificate\/digital certificate issued by the trusted Certificate Authorities (CAs).<\/p>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n<div class=\"w-separator size_medium with_line width_default thick_1 style_solid color_border align_center\"><div class=\"w-separator-h\"><\/div><\/div>\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h2><span class=\"ez-toc-section\" id=\"Prerequisites\">Prerequisites<\/span><\/h2>\n<p>To establish a Two-Way SSL (Mutual Authentication) connection, you must have the following:<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>private key,<\/li>\n<li>client certificate,<\/li>\n<li>certificate authority root certificate, and<\/li>\n<li>certificate authority intermediate certificates.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>The client can acquire a certificate from any of the trusted Certificate Authority (CA).<\/p>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n<div class=\"w-separator size_medium with_line width_default thick_1 style_solid color_border align_center\"><div class=\"w-separator-h\"><\/div><\/div>\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<h2><span class=\"ez-toc-section\" id=\"Koreai_Implementation\">Kore.ai Implementation<\/span><\/h2>\n<p>Kore.ai Bots Platform offers this support <span style=\"text-decoration: underline;\">only for on-premise users<\/span>. At the time of Bots platform installation, configure the SSL certificate following the instructions given in the Installation Guide.<br \/>\nWhenever the Bots platform makes a call to backend services for API invocation (from Service node) that requires mutual authentication (or two way SSL), the Bots platform presents the configured certificate to the API endpoint for SSL handshake. If the certificate is not valid or not trusted by the API service, Bot will not be able to make that call.<br \/>\n<span style=\"font-weight: 400;\">The authentication message exchange during SSL handshake between Bots platform and API server includes the following steps:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">The Bots platform makes a request to a configured API endpoint.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">The API server presents its certificate to the Bots platform.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">The Bots platform verifies the server&#8217;s certificate.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">If successful, the Bots platform sends its configured 2-way SSL certificate to the API server.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">The API server verifies the presented certificate credentials.<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">If successful, the server grants API access to the Bots platform <\/span><br \/>\nThis process is applicable for service nodes (<a href=\"\/docs\/bots\/bot-builder\/defining-bot-tasks\/dialog-tasks\/working-with-the-service-node\/\">know more about service node<\/a>) in a Bot.<\/p>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n<div class=\"w-separator size_medium with_line width_default thick_1 style_solid color_border align_center\"><div class=\"w-separator-h\"><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section>\n","protected":false},"excerpt":{"rendered":"2-way SSL authentication is a certificate-based mutual authentication protocol that refers to two parties authenticating each other by verifying the provided digital certificate so that both parties are assured of the others' identity. It refers to a client (web browser or client application) authenticating themselves to a server (website or server application) and the server...","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[29],"tags":[],"class_list":["post-18146","post","type-post","status-publish","format-standard","hentry","category-dialog-task"],"_links":{"self":[{"href":"https:\/\/developer.kore.ai\/v7-0\/wp-json\/wp\/v2\/posts\/18146","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/developer.kore.ai\/v7-0\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/developer.kore.ai\/v7-0\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/developer.kore.ai\/v7-0\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/developer.kore.ai\/v7-0\/wp-json\/wp\/v2\/comments?post=18146"}],"version-history":[{"count":3,"href":"https:\/\/developer.kore.ai\/v7-0\/wp-json\/wp\/v2\/posts\/18146\/revisions"}],"predecessor-version":[{"id":20686,"href":"https:\/\/developer.kore.ai\/v7-0\/wp-json\/wp\/v2\/posts\/18146\/revisions\/20686"}],"wp:attachment":[{"href":"https:\/\/developer.kore.ai\/v7-0\/wp-json\/wp\/v2\/media?parent=18146"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/developer.kore.ai\/v7-0\/wp-json\/wp\/v2\/categories?post=18146"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/developer.kore.ai\/v7-0\/wp-json\/wp\/v2\/tags?post=18146"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}