{"id":4887,"date":"2021-10-13T17:15:00","date_gmt":"2021-10-13T14:15:00","guid":{"rendered":"https:\/\/www.systemcodegeeks.com\/?p=4887"},"modified":"2021-10-13T10:38:39","modified_gmt":"2021-10-13T07:38:39","slug":"add-mtls-to-nginx","status":"publish","type":"post","link":"https:\/\/www.systemcodegeeks.com\/web-servers\/nginx\/add-mtls-to-nginx\/","title":{"rendered":"Add mTLS to Nginx"},"content":{"rendered":"\n<p>Previously we added <a href=\"https:\/\/www.systemcodegeeks.com\/web-servers\/nginx\/add-ssl-to-nginx\/\">ssl<\/a> to an Nginx server. On this example we shall enhance our security by adding mTLS to Nginx.<\/p>\n\n\n\n<p>Apart from encrypting the traffic between client and server, SSL is also a way for the client to make sure that the server connecting to, is a trusted source.<\/p>\n\n\n\n<p>On the other hand mTLS is a way for the server to ensure that the client is a trusted one. The client does accept the SSL connection to the server however it has to present to the server a certificate signed from an authority that the Server accepts. This way the Server, by validating the certificate the client presents can allow the connection.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><a href=\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2021\/10\/nginx-logo-rgb-large.png\"><img decoding=\"async\" width=\"271\" height=\"91\" src=\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2021\/10\/nginx-logo-rgb-large.png\" alt=\"\" class=\"wp-image-4890\"\/><\/a><\/figure><\/div>\n\n\n\n<p>More or less we shall build upon the previous example. The ssl certificates shall be the same, however we shall add the configuration for mtls.<\/p>\n\n\n\n<p>The server ssl creation.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted brush:bash\">mkdir certs\n\ncd certs\n\nopenssl genrsa -des3 -out ca.key 4096\n#Remove passphrase for example purposes\nopenssl rsa -in ca.key -out ca.key\nopenssl req -new -x509 -days 3650 -key ca.key -subj \"\/CN=*.your.hostname\" -out ca.crt\n\nprintf test &gt; passphrase.txt\nopenssl genrsa -des3 -passout file:passphrase.txt -out server.key 2048\nopenssl req -new -passin file:passphrase.txt -key server.key -subj \"\/CN=*.your.hostname\" -out server.csr\n\nopenssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt<\/pre>\n\n\n\n<p>The above is sufficient to secure out Nginx with SSL. So let\u2019s create the mTLS certificates for the clients.<br>In order to create a certificate for mTLS we need a certificate authority. For convenience the certificate authority will be the same as the one we generated on the previous example.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted brush:bash\">printf test &gt; client_passphrase.txt\nopenssl genrsa -des3 -passout file:client_passphrase.txt -out client.key 2048\nopenssl rsa -passin file:client_passphrase.txt -in client.key -out client.key\nopenssl req -new -key client.key -subj \"\/CN=*.client.hostname\" -out client.csr\n\n##Sign the certificate with the certificate authority\nopenssl x509 -req -days 365 -in client.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out client.crt<\/pre>\n\n\n\n<p>Take note that the client common name needs to be different from the server\u2019s certs common name, or else your request will be reject.<\/p>\n\n\n\n<p>So we have our client certificate generated.<br>The next step is to configure Nginx to force mTLS connections from a specific authority<\/p>\n\n\n\n<pre class=\"wp-block-preformatted brush:bash\">server {\nerror_log \/var\/log\/nginx\/error.log debug;\n    listen 443 ssl;\n    server_name  test.your.hostname;\n    ssl_password_file \/etc\/nginx\/certs\/password;\n    ssl_certificate \/etc\/nginx\/certs\/tls.crt;\n    ssl_certificate_key \/etc\/nginx\/certs\/tls.key;\n\n    ssl_client_certificate \/etc\/nginx\/mtls\/ca.crt;\n    ssl_verify_client on;\n    ssl_verify_depth  3;\n\n    ssl_protocols             TLSv1 TLSv1.1 TLSv1.2;\n\n    location \/ {\n    }\n\n}<\/pre>\n\n\n\n<p>By using the ssl_client_certificate we point to the certificate authority that the client certificates should be signed from.<br>By using the ssl_verify_client as on, we enforce mTLS connections.<\/p>\n\n\n\n<p>Since we have all certificates generated let\u2019s spin up the Nginx server using docker.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted brush:bash\">docker run --rm --name mtls-nginx -p 443:443 -v $(pwd)\/certs\/ca.crt:\/etc\/nginx\/mtls\/ca.crt -v $(pwd)\/certs\/server.key:\/etc\/nginx\/certs\/tls.key -v $(pwd)\/certs\/server.crt:\/etc\/nginx\/certs\/tls.crt -v $(pwd)\/nginx.mtls.conf:\/etc\/nginx\/conf.d\/nginx.conf -v $(pwd)\/certs\/passphrase.txt:\/etc\/nginx\/certs\/password nginx<\/pre>\n\n\n\n<p>Our server is up and running. Let\u2019s try to do a request using curl without using any client certificates.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted brush:bash\">curl https:\/\/localhost\/ --insecure<\/pre>\n\n\n\n<p>The result shall be<\/p>\n\n\n\n<pre class=\"wp-block-preformatted brush:bash\">&lt;html&gt;\n&lt;head&gt;&lt;title&gt;400 No required SSL certificate was sent&lt;\/title&gt;&lt;\/head&gt;\n&lt;body&gt;\n&lt;center&gt;&lt;h1&gt;400 Bad Request&lt;\/h1&gt;&lt;\/center&gt;\n&lt;center&gt;No required SSL certificate was sent&lt;\/center&gt;\n&lt;hr&gt;&lt;center&gt;nginx\/1.21.3&lt;\/center&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/pre>\n\n\n\n<p>As expected our request is rejected.<br>Let\u2019s use the client certificates we generated from the expected certificate authority.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted brush:bash\">curl --key certs\/client.key --cert certs\/client.crt https:\/\/127.0.0.1 --insecure<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted brush:bash\">&lt;html&gt;\n&lt;head&gt;&lt;title&gt;404 Not Found&lt;\/title&gt;&lt;\/head&gt;\n&lt;body&gt;\n&lt;center&gt;&lt;h1&gt;404 Not Found&lt;\/h1&gt;&lt;\/center&gt;\n&lt;hr&gt;&lt;center&gt;nginx\/1.21.3&lt;\/center&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/pre>\n\n\n\n<p>The connection was established and the client could connect to the Nginx instance.<\/p>\n\n\n\n<p>Let\u2019s put them all together<\/p>\n\n\n\n<pre class=\"wp-block-preformatted brush:bash\">mkdir certs\n\ncd certs\n\nopenssl genrsa -des3 -out ca.key 4096\n#Remove passphrase for example purposes\nopenssl rsa -in ca.key -out ca.key\nopenssl req -new -x509 -days 3650 -key ca.key -subj \"\/CN=*.your.hostname\" -out ca.crt\n\nprintf test &gt; passphrase.txt\nopenssl genrsa -des3 -passout file:passphrase.txt -out server.key 2048\nopenssl req -new -passin file:passphrase.txt -key server.key -subj \"\/CN=*.your.hostname\" -out server.csr\n\nopenssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt\n\nprintf test &gt; client_passphrase.txt\nopenssl genrsa -des3 -passout file:client_passphrase.txt -out client.key 2048\nopenssl rsa -passin file:client_passphrase.txt -in client.key -out client.key\nopenssl req -new -key client.key -subj \"\/CN=*.client.hostname\" -out client.csr\n\n##Sign the certificate with the certificate authority\nopenssl x509 -req -days 365 -in client.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out client.crt\n\ncd ..\/\n\ndocker run --rm --name mtls-nginx -p 443:443 -v $(pwd)\/certs\/ca.crt:\/etc\/nginx\/mtls\/ca.crt -v $(pwd)\/certs\/server.key:\/etc\/nginx\/certs\/tls.key -v $(pwd)\/certs\/server.crt:\/etc\/nginx\/certs\/tls.crt -v $(pwd)\/nginx.mtls.conf:\/etc\/nginx\/conf.d\/nginx.conf -v $(pwd)\/certs\/passphrase.txt:\/etc\/nginx\/certs\/password nginx<\/pre>\n\n\n\n<p>You can find the code on <a href=\"https:\/\/github.com\/gkatzioura\/egkatzioura.wordpress.com\/blob\/master\/nginx-ssl\/run.mtls.sh\">github<\/a><\/p>\n\n\n\n<div class=\"attribution\">\n<table>\n<tbody>\n<tr>\n<td>\n<p>Published on System Code Geeks with permission by Emmanouil Gkatziouras, partner at our <a href=\"\/\/www.systemcodegeeks.com\/join-us\/scg\/\" target=\"_blank\" rel=\"noopener\">SCG program<\/a>. See the original article here: <a href=\"https:\/\/egkatzioura.com\/2021\/10\/01\/add-mtls-to-nginx\/\" target=\"_blank\" rel=\"noopener\">Add mTLS to Nginx<\/a><\/p>\n<p>Opinions expressed by System Code Geeks contributors are their own.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Previously we added ssl to an Nginx server. On this example we shall enhance our security by adding mTLS to Nginx. Apart from encrypting the traffic between client and server, SSL is also a way for the client to make sure that the server connecting to, is a trusted source. On the other hand mTLS &hellip;<\/p>\n","protected":false},"author":23,"featured_media":195,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25],"tags":[42],"class_list":["post-4887","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-nginx","tag-docker"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Add mTLS to Nginx - System Code Geeks - 2026<\/title>\n<meta name=\"description\" content=\"Interested to learn about mTLS? Check our article explaining how to add mTLS to Nginx with examples.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.systemcodegeeks.com\/web-servers\/nginx\/add-mtls-to-nginx\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Add mTLS to Nginx - System Code Geeks - 2026\" \/>\n<meta property=\"og:description\" content=\"Interested to learn about mTLS? Check our article explaining how to add mTLS to Nginx with examples.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.systemcodegeeks.com\/web-servers\/nginx\/add-mtls-to-nginx\/\" \/>\n<meta property=\"og:site_name\" content=\"System Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/systemcodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2021-10-13T14:15:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/nginx-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Emmanouil Gkatziouras\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@gkatzioura\" \/>\n<meta name=\"twitter:site\" content=\"@systemcodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Emmanouil Gkatziouras\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/web-servers\/nginx\/add-mtls-to-nginx\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/web-servers\/nginx\/add-mtls-to-nginx\/\"},\"author\":{\"name\":\"Emmanouil Gkatziouras\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/#\/schema\/person\/60518212665dfdfae4caef9cc6702155\"},\"headline\":\"Add mTLS to Nginx\",\"datePublished\":\"2021-10-13T14:15:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/web-servers\/nginx\/add-mtls-to-nginx\/\"},\"wordCount\":394,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/web-servers\/nginx\/add-mtls-to-nginx\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/nginx-logo.jpg\",\"keywords\":[\"Docker\"],\"articleSection\":[\"NGINX\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.systemcodegeeks.com\/web-servers\/nginx\/add-mtls-to-nginx\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/web-servers\/nginx\/add-mtls-to-nginx\/\",\"url\":\"https:\/\/www.systemcodegeeks.com\/web-servers\/nginx\/add-mtls-to-nginx\/\",\"name\":\"Add mTLS to Nginx - System Code Geeks - 2026\",\"isPartOf\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/web-servers\/nginx\/add-mtls-to-nginx\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/web-servers\/nginx\/add-mtls-to-nginx\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/nginx-logo.jpg\",\"datePublished\":\"2021-10-13T14:15:00+00:00\",\"description\":\"Interested to learn about mTLS? Check our article explaining how to add mTLS to Nginx with examples.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/web-servers\/nginx\/add-mtls-to-nginx\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.systemcodegeeks.com\/web-servers\/nginx\/add-mtls-to-nginx\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/web-servers\/nginx\/add-mtls-to-nginx\/#primaryimage\",\"url\":\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/nginx-logo.jpg\",\"contentUrl\":\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/nginx-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/web-servers\/nginx\/add-mtls-to-nginx\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.systemcodegeeks.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Web Servers\",\"item\":\"https:\/\/www.systemcodegeeks.com\/category\/web-servers\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"NGINX\",\"item\":\"https:\/\/www.systemcodegeeks.com\/category\/web-servers\/nginx\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Add mTLS to Nginx\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/#website\",\"url\":\"https:\/\/www.systemcodegeeks.com\/\",\"name\":\"System Code Geeks\",\"description\":\"Operating System Developers Resource Center\",\"publisher\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.systemcodegeeks.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\/\/www.systemcodegeeks.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"contentUrl\":\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/systemcodegeeks\",\"https:\/\/x.com\/systemcodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/#\/schema\/person\/60518212665dfdfae4caef9cc6702155\",\"name\":\"Emmanouil Gkatziouras\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/5c6d031d211ab786ec335687ad6f3f076f93f47e24c92d78041d2f805ee6c291?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/5c6d031d211ab786ec335687ad6f3f076f93f47e24c92d78041d2f805ee6c291?s=96&d=mm&r=g\",\"caption\":\"Emmanouil Gkatziouras\"},\"description\":\"I am a versatile software engineer with experience in a wide variety of applications\/services. I am enthusiastic about new projects, embracing new technologies, and getting to know people in the field of software.\",\"sameAs\":[\"http:\/\/egkatzioura.wordpress.com\/\",\"https:\/\/gr.linkedin.com\/in\/gkatziourasemmanouil\",\"https:\/\/x.com\/gkatzioura\"],\"url\":\"https:\/\/www.systemcodegeeks.com\/author\/emmanouil-gkatziouras\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Add mTLS to Nginx - System Code Geeks - 2026","description":"Interested to learn about mTLS? Check our article explaining how to add mTLS to Nginx with examples.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.systemcodegeeks.com\/web-servers\/nginx\/add-mtls-to-nginx\/","og_locale":"en_US","og_type":"article","og_title":"Add mTLS to Nginx - System Code Geeks - 2026","og_description":"Interested to learn about mTLS? Check our article explaining how to add mTLS to Nginx with examples.","og_url":"https:\/\/www.systemcodegeeks.com\/web-servers\/nginx\/add-mtls-to-nginx\/","og_site_name":"System Code Geeks","article_publisher":"https:\/\/www.facebook.com\/systemcodegeeks","article_published_time":"2021-10-13T14:15:00+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/nginx-logo.jpg","type":"image\/jpeg"}],"author":"Emmanouil Gkatziouras","twitter_card":"summary_large_image","twitter_creator":"@gkatzioura","twitter_site":"@systemcodegeeks","twitter_misc":{"Written by":"Emmanouil Gkatziouras","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.systemcodegeeks.com\/web-servers\/nginx\/add-mtls-to-nginx\/#article","isPartOf":{"@id":"https:\/\/www.systemcodegeeks.com\/web-servers\/nginx\/add-mtls-to-nginx\/"},"author":{"name":"Emmanouil Gkatziouras","@id":"https:\/\/www.systemcodegeeks.com\/#\/schema\/person\/60518212665dfdfae4caef9cc6702155"},"headline":"Add mTLS to Nginx","datePublished":"2021-10-13T14:15:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.systemcodegeeks.com\/web-servers\/nginx\/add-mtls-to-nginx\/"},"wordCount":394,"commentCount":0,"publisher":{"@id":"https:\/\/www.systemcodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.systemcodegeeks.com\/web-servers\/nginx\/add-mtls-to-nginx\/#primaryimage"},"thumbnailUrl":"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/nginx-logo.jpg","keywords":["Docker"],"articleSection":["NGINX"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.systemcodegeeks.com\/web-servers\/nginx\/add-mtls-to-nginx\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.systemcodegeeks.com\/web-servers\/nginx\/add-mtls-to-nginx\/","url":"https:\/\/www.systemcodegeeks.com\/web-servers\/nginx\/add-mtls-to-nginx\/","name":"Add mTLS to Nginx - System Code Geeks - 2026","isPartOf":{"@id":"https:\/\/www.systemcodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.systemcodegeeks.com\/web-servers\/nginx\/add-mtls-to-nginx\/#primaryimage"},"image":{"@id":"https:\/\/www.systemcodegeeks.com\/web-servers\/nginx\/add-mtls-to-nginx\/#primaryimage"},"thumbnailUrl":"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/nginx-logo.jpg","datePublished":"2021-10-13T14:15:00+00:00","description":"Interested to learn about mTLS? Check our article explaining how to add mTLS to Nginx with examples.","breadcrumb":{"@id":"https:\/\/www.systemcodegeeks.com\/web-servers\/nginx\/add-mtls-to-nginx\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.systemcodegeeks.com\/web-servers\/nginx\/add-mtls-to-nginx\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.systemcodegeeks.com\/web-servers\/nginx\/add-mtls-to-nginx\/#primaryimage","url":"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/nginx-logo.jpg","contentUrl":"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/nginx-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.systemcodegeeks.com\/web-servers\/nginx\/add-mtls-to-nginx\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.systemcodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Web Servers","item":"https:\/\/www.systemcodegeeks.com\/category\/web-servers\/"},{"@type":"ListItem","position":3,"name":"NGINX","item":"https:\/\/www.systemcodegeeks.com\/category\/web-servers\/nginx\/"},{"@type":"ListItem","position":4,"name":"Add mTLS to Nginx"}]},{"@type":"WebSite","@id":"https:\/\/www.systemcodegeeks.com\/#website","url":"https:\/\/www.systemcodegeeks.com\/","name":"System Code Geeks","description":"Operating System Developers Resource Center","publisher":{"@id":"https:\/\/www.systemcodegeeks.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.systemcodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.systemcodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.systemcodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.systemcodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.systemcodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/systemcodegeeks","https:\/\/x.com\/systemcodegeeks"]},{"@type":"Person","@id":"https:\/\/www.systemcodegeeks.com\/#\/schema\/person\/60518212665dfdfae4caef9cc6702155","name":"Emmanouil Gkatziouras","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.systemcodegeeks.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/5c6d031d211ab786ec335687ad6f3f076f93f47e24c92d78041d2f805ee6c291?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5c6d031d211ab786ec335687ad6f3f076f93f47e24c92d78041d2f805ee6c291?s=96&d=mm&r=g","caption":"Emmanouil Gkatziouras"},"description":"I am a versatile software engineer with experience in a wide variety of applications\/services. I am enthusiastic about new projects, embracing new technologies, and getting to know people in the field of software.","sameAs":["http:\/\/egkatzioura.wordpress.com\/","https:\/\/gr.linkedin.com\/in\/gkatziourasemmanouil","https:\/\/x.com\/gkatzioura"],"url":"https:\/\/www.systemcodegeeks.com\/author\/emmanouil-gkatziouras\/"}]}},"_links":{"self":[{"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/posts\/4887","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/users\/23"}],"replies":[{"embeddable":true,"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/comments?post=4887"}],"version-history":[{"count":0,"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/posts\/4887\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/media\/195"}],"wp:attachment":[{"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/media?parent=4887"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/categories?post=4887"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/tags?post=4887"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}