{"id":844,"date":"2016-03-04T17:11:05","date_gmt":"2016-03-04T15:11:05","guid":{"rendered":"http:\/\/www.systemcodegeeks.com\/?p=844"},"modified":"2018-05-31T15:05:39","modified_gmt":"2018-05-31T12:05:39","slug":"apache-ssl-tls-tutorial","status":"publish","type":"post","link":"https:\/\/www.systemcodegeeks.com\/web-servers\/apache\/apache-ssl-tls-tutorial\/","title":{"rendered":"Apache enable SSL \/ TLS tutorial"},"content":{"rendered":"<p><em>In this post, we feature a comprehensive Apache enable SSL \/ TLS Tutorial. This article is part of our Academy Course titled <a href=\"https:\/\/www.systemcodegeeks.com\/web-servers\/apache\/apache-http-server-tutorial\/\">Apache HTTP Server Tutorial<\/a>.<\/em><\/p>\n<p>In this course, we provide a compilation of Apache HTTP Server tutorials that will help you get started with this web server. We cover a wide range of topics, from installing the server and performing a basic configuration, to configuring Virtual Hosts and SSL support. With our straightforward tutorials, you will be able to get your own projects up and running in minimum time. Check it out <a href=\"https:\/\/www.systemcodegeeks.com\/web-servers\/apache\/apache-http-server-tutorial\/\">here<\/a>!<\/p>\n<p><span style=\"font-weight: 400;\">In the previous articles of this series, we discussed how to <a href=\"http:\/\/www.systemcodegeeks.com\/web-servers\/apache\/how-to-install-the-apache-web-server\/\">install Apache<\/a>, <a href=\"http:\/\/www.systemcodegeeks.com\/web-servers\/apache\/apache-name-based-virtual-host-configuration-example\/\">configure virtual hosts<\/a>, <a href=\"http:\/\/www.systemcodegeeks.com\/web-servers\/apache\/apache-mod_rewrite-example\/\">rewrite and redirect URLs<\/a>, and add basic authentication to access resources, among other things.<\/span><\/p>\n<p>Although all those things are necessary in order to have a functional web server, any serious discussion about Apache must take security into account.<\/p>\n<p>In other words, you need to ensure that sensitive and other private data that is sent from a client to your web server is protected along its way.<br \/>\n[ulp id=&#8217;euI76dOod8fb2P3K&#8217;]<\/p>\n<h2>1. Introducing SSL and TLS<\/h2>\n<p><span style=\"font-weight: 400;\">Originally designed by Netscape to secure transactions between web servers and browsers, the <strong>Secure Sockets Layer<\/strong> (best known as <strong>SSL<\/strong>) protocol served well its purpose for a long time. This was the case until critical vulnerabilities (such as Heartbleed and Poodle) were found in some of its most-used implementations. This eventually led to the recommendation of avoiding SSL and using the <strong>Transport Layer Security<\/strong>, or <strong>TLS<\/strong> for short. <\/span><\/p>\n<div class=\"tip\">Version 1.2 of the TLS protocol is well documented in <a href=\"https:\/\/tools.ietf.org\/html\/rfc5246\"><span style=\"font-weight: 400;\">RFC 5246<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/div>\n<p><span style=\"font-weight: 400;\">When you request a page over HTTPS (<\/span><a href=\"https:\/\/www.facebook.com\/\"><span style=\"font-weight: 400;\">https:\/\/www.facebook.com\/<\/span><\/a><span style=\"font-weight: 400;\"> for example), the server responds with a valid certificate that has been signed by a common trusted party, along with its public key. The client then returns an encrypted key (signed with the server\u2019s public key), which is then decrypted using the server\u2019s private key.<\/span><\/p>\n<p>From this point on, a secure session is initiated between server and client, and both use the session key to encrypt and decrypt exchanged data. In more technical terms, asymmetric cryptography (public \/ private key pair) is used while the session key is being exchanged, and then symmetric encryption (shared key) is utilized while the client and the server communicate with each other.<\/p>\n<h2>2. Apache and TLS<\/h2>\n<p><span style=\"font-weight: 400;\">In this guide we will again use example2.com, one of the virtual hosts that we previously set up. To begin, we need to make sure that the mod_ssl package is installed if we are using CentOS:<\/span><\/p>\n<pre class=\"brush:bash\">yum install mod_ssl<\/pre>\n<p><span style=\"font-weight: 400;\">or that the ssl module is loaded in Ubuntu:<\/span><\/p>\n<pre class=\"brush:bash\">sudo service apache2 restart<\/pre>\n<p><span style=\"font-weight: 400;\">To illustrate, we will use a self-signed certificate, which is easy to create and use.<\/span><\/p>\n<div class=\"tip\">A self-signed certificate is perfectly valid for a private application (as you can generate it on your own at no cost to you), but not for a production application. For a web site or application that other people will use, you may want to consider getting a certificate signed by <a href=\"https:\/\/www.sslshopper.com\/certificate-authority-reviews.html\"><span style=\"font-weight: 400;\">a trusted Certificate Authority<\/span><\/a><span style=\"font-weight: 400;\">. Note, however, that this option is not free.<\/span><\/div>\n<p><span style=\"font-weight: 400;\">Let\u2019s begin by creating a special directory to store the certificate and the key.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In CentOS:<\/span><\/p>\n<pre class=\"brush:bash\">mkdir \/etc\/httpd\/certs<\/pre>\n<p><span style=\"font-weight: 400;\">In Ubuntu:<\/span><\/p>\n<pre class=\"brush:bash\">sudo mkdir \/etc\/apache2\/certs<\/pre>\n<p><b>Important: <\/b><span style=\"font-weight: 400;\">The following example is based in Ubuntu, so if you are using CentOS make sure you change the path to the certs directory. The rest of the set up is identical for both distributions.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Now we can go ahead and create a certificate that will be valid for 365 days and a 2048-bit RSA key. As you can see in Fig. 1, you can fill the required fields with whatever information you want:<\/span><\/p>\n<pre class=\"brush:bash\">sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout \/etc\/apache2\/certs\/apache2.key -out \/etc\/apache2\/certs\/apache2.crt<\/pre>\n<figure id=\"attachment_850\" aria-describedby=\"caption-attachment-850\" style=\"width: 685px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\"wp-image-850 size-full\" src=\"http:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/02\/01part5.png\" alt=\"Figure 1: Apache enable SSL \/ TLS Tutorial: Creating a self-signed certificate and key file\" width=\"685\" height=\"411\" srcset=\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/02\/01part5.png 685w, https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/02\/01part5-300x180.png 300w\" sizes=\"(max-width: 685px) 100vw, 685px\" \/><figcaption id=\"caption-attachment-850\" class=\"wp-caption-text\">Figure 1: Creating a self-signed certificate and key file<\/figcaption><\/figure>\n<p><span style=\"font-weight: 400;\">You can find the explanation for the other options in the man page of openssl.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">A quick inspection of \/etc\/apache2\/certs will show the certificate and key files, as can be seen in Fig. 2:<\/span><\/p>\n<pre class=\"brush:bash\">cd \/etc\/apache2\/certs\r\nls\r\nfile apache2.crt\r\nfile apache2.key<\/pre>\n<figure id=\"attachment_851\" aria-describedby=\"caption-attachment-851\" style=\"width: 556px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\"wp-image-851 size-full\" src=\"http:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/02\/02part5.png\" alt=\"Figure 2: Apache enable SSL \/ TLS Tutorial: Displaying the certificate and key file types\" width=\"556\" height=\"166\" srcset=\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/02\/02part5.png 556w, https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/02\/02part5-300x90.png 300w\" sizes=\"(max-width: 556px) 100vw, 556px\" \/><figcaption id=\"caption-attachment-851\" class=\"wp-caption-text\">Figure 2: Displaying the certificate and key file types<\/figcaption><\/figure>\n<p><span style=\"font-weight: 400;\">Now let\u2019s go to the configuration file of example2.com, which up to this point should look as follows:<\/span><\/p>\n<pre class=\"brush:xml\">&lt;VirtualHost *:80&gt;\r\nDocumentRoot \"\/var\/www\/example2.com\/public_html\/\"\r\nServerName www.example2.com\r\nServerAlias example2.com\r\nErrorLog \/var\/www\/example2.com\/error.log\r\nCustomLog \/var\/www\/example2.com\/access.log combined\r\n&lt;\/VirtualHost&gt;<\/pre>\n<p><span style=\"font-weight: 400;\">We need to tell Apache to use TLS for this particular virtual host. To do that, change the IP address and port where the virtual host is defined to 192.168.0.30 (the IP address of the Ubuntu server) and 443, respectively, and then add the following directives:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><b>SSLEngine on<\/b><span style=\"font-weight: 400;\"> enables the usage of SSL and TLS for this virtual host.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>SSLCertificateFile<\/b><span style=\"font-weight: 400;\"> \/etc\/apache2\/certs\/apache2.crt indicates the path to the certificate file.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>SSLCertificateKeyFile<\/b><span style=\"font-weight: 400;\"> \/etc\/apache2\/certs\/apache2.key indicates the path to the key file.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>SSLProtocol All -SSLv3<\/b><span style=\"font-weight: 400;\"> tells Apache to use all protocols except SSL v3 (which means we are forcing Apache to use TLS only).<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Now restart Apache.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The virtual host definition should now look as follows:<\/span><\/p>\n<pre class=\"brush:xml\">&lt;VirtualHost 192.168.0.30:443&gt;\r\nDocumentRoot \"\/var\/www\/example2.com\/public_html\/\"\r\nServerName www.example2.com\r\nServerAlias example2.com\r\nSSLEngine on\r\nSSLCertificateFile \/etc\/apache2\/certs\/apache2.crt\r\nSSLCertificateKeyFile \/etc\/apache2\/certs\/apache2.key\r\nSSLProtocol All -SSLv3\r\nErrorLog \/var\/www\/example2.com\/error.log\r\nCustomLog \/var\/www\/example2.com\/access.log combined\r\n&lt;\/VirtualHost&gt;<\/pre>\n<div class=\"tip\">\n<p>In CentOS 7, you will need to allow the https service through your firewall:<\/p>\n<pre class=\"brush:bash\">firewall-cmd --add-service=https\r\nfirewall-cmd --add-service=https --permanent<\/pre>\n<\/div>\n<p><span style=\"font-weight: 400;\">To test, you can now either open a browser and go to <\/span><a href=\"http:\/\/example2.com\"><span style=\"font-weight: 400;\">http:\/\/example2.com<\/span><\/a><span style=\"font-weight: 400;\"> (you will be asked to confirm a security exception that indicates that the server is presenting a self-signed certificate) or add the following line to the \/etc\/hosts file:<\/span><\/p>\n<pre class=\"brush:bash\">192.168.0.30 example2 example2.com<\/pre>\n<p><span style=\"font-weight: 400;\">and use the openssl tool as follows.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">First, test a non-supported protocol (SSLv3 for example):<\/span><\/p>\n<pre class=\"brush:bash\">openssl s_client -connect example2.com:443 -ssl3<\/pre>\n<p><span style=\"font-weight: 400;\">Then repeat the test using TLS:<\/span><\/p>\n<pre class=\"brush:bash\">openssl s_client -connect example2.com:443 -tls1<\/pre>\n<p><span style=\"font-weight: 400;\">You should see a significant difference between the output of these two tests.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">If you decided to use a browser to perform the test instead, you should see the certificate information after opening the developer tools (in Firefox, right click and choose Inspect element). Refer to Fig. 3 for details.<\/span><\/p>\n<figure id=\"attachment_852\" aria-describedby=\"caption-attachment-852\" style=\"width: 490px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\"wp-image-852 size-full\" src=\"http:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/02\/03part5.png\" alt=\"Figure 3: Apache enable SSL \/ TLS Tutorial: Inspecting the connection details\" width=\"490\" height=\"544\" srcset=\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/02\/03part5.png 490w, https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/02\/03part5-270x300.png 270w\" sizes=\"(max-width: 490px) 100vw, 490px\" \/><figcaption id=\"caption-attachment-852\" class=\"wp-caption-text\">Figure 3: Inspecting the connection details<\/figcaption><\/figure>\n<p><span style=\"font-weight: 400;\">Congratulations! You have setup TLS with Apache.<\/span><\/p>\n<h2>3. Summary<\/h2>\n<p><span style=\"font-weight: 400;\">In this guide we have outlined the necessary steps to add security to Apache. It is important to note that there is much more to security than what can be adequately covered in a single article. Thus, you are highly encouraged to become familiar with the <a href=\"https:\/\/httpd.apache.org\/docs\/2.4\/mod\/mod_ssl.html\" target=\"_blank\" rel=\"noopener\">mod_ssl<\/a> documentation before taking your web server to a production stage.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this post, we feature a comprehensive Apache enable SSL \/ TLS Tutorial. This article is part of our Academy Course titled Apache HTTP Server Tutorial. In this course, we provide a compilation of Apache HTTP Server tutorials that will help you get started with this web server. We cover a wide range of topics, &hellip;<\/p>\n","protected":false},"author":15,"featured_media":184,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24],"tags":[],"class_list":["post-844","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-apache"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Apache enable SSL \/ TLS tutorial - System Code Geeks - 2026<\/title>\n<meta name=\"description\" content=\"Interested to learn more about Apache SSL\/TLS?Then check out our detailed Apache enable SSL \/ TLS Tutorial where we provide a compilation of Apache HTTP Server tutorials that will help you get started with this web server.\" \/>\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\/apache\/apache-ssl-tls-tutorial\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Apache enable SSL \/ TLS tutorial - System Code Geeks - 2026\" \/>\n<meta property=\"og:description\" content=\"Interested to learn more about Apache SSL\/TLS?Then check out our detailed Apache enable SSL \/ TLS Tutorial where we provide a compilation of Apache HTTP Server tutorials that will help you get started with this web server.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.systemcodegeeks.com\/web-servers\/apache\/apache-ssl-tls-tutorial\/\" \/>\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:author\" content=\"https:\/\/www.facebook.com\/gacanepa\" \/>\n<meta property=\"article:published_time\" content=\"2016-03-04T15:11:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-05-31T12:05:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/apache-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=\"Gabriel Canepa\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@gacanepa\" \/>\n<meta name=\"twitter:site\" content=\"@systemcodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Gabriel Canepa\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 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\/apache\/apache-ssl-tls-tutorial\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/web-servers\/apache\/apache-ssl-tls-tutorial\/\"},\"author\":{\"name\":\"Gabriel Canepa\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/#\/schema\/person\/967da353d0f1a1de21c9504942625a5f\"},\"headline\":\"Apache enable SSL \/ TLS tutorial\",\"datePublished\":\"2016-03-04T15:11:05+00:00\",\"dateModified\":\"2018-05-31T12:05:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/web-servers\/apache\/apache-ssl-tls-tutorial\/\"},\"wordCount\":1014,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/web-servers\/apache\/apache-ssl-tls-tutorial\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/apache-logo.jpg\",\"articleSection\":[\"Apache\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.systemcodegeeks.com\/web-servers\/apache\/apache-ssl-tls-tutorial\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/web-servers\/apache\/apache-ssl-tls-tutorial\/\",\"url\":\"https:\/\/www.systemcodegeeks.com\/web-servers\/apache\/apache-ssl-tls-tutorial\/\",\"name\":\"Apache enable SSL \/ TLS tutorial - System Code Geeks - 2026\",\"isPartOf\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/web-servers\/apache\/apache-ssl-tls-tutorial\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/web-servers\/apache\/apache-ssl-tls-tutorial\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/apache-logo.jpg\",\"datePublished\":\"2016-03-04T15:11:05+00:00\",\"dateModified\":\"2018-05-31T12:05:39+00:00\",\"description\":\"Interested to learn more about Apache SSL\/TLS?Then check out our detailed Apache enable SSL \/ TLS Tutorial where we provide a compilation of Apache HTTP Server tutorials that will help you get started with this web server.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/web-servers\/apache\/apache-ssl-tls-tutorial\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.systemcodegeeks.com\/web-servers\/apache\/apache-ssl-tls-tutorial\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/web-servers\/apache\/apache-ssl-tls-tutorial\/#primaryimage\",\"url\":\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/apache-logo.jpg\",\"contentUrl\":\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/apache-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/web-servers\/apache\/apache-ssl-tls-tutorial\/#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\":\"Apache\",\"item\":\"https:\/\/www.systemcodegeeks.com\/category\/web-servers\/apache\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Apache enable SSL \/ TLS tutorial\"}]},{\"@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\/967da353d0f1a1de21c9504942625a5f\",\"name\":\"Gabriel Canepa\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/27b3ea2a3fb1de4ed1c8694a1465c099a86586d8b833a0d852a26d76d750df9f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/27b3ea2a3fb1de4ed1c8694a1465c099a86586d8b833a0d852a26d76d750df9f?s=96&d=mm&r=g\",\"caption\":\"Gabriel Canepa\"},\"description\":\"Gabriel Canepa is a Linux Foundation Certified System Administrator (LFCS-1500-0576-0100) and web developer from Villa Mercedes, San Luis, Argentina. He works for a worldwide leading consumer product company and takes great pleasure in using FOSS tools to increase productivity in all areas of his daily work. When he's not typing commands or writing code or articles, he enjoys telling bedtime stories with his wife to his two little daughters and playing with them, the great pleasure of his life.\",\"sameAs\":[\"http:\/\/www.gabrielcanepa.com.ar\/\",\"https:\/\/www.facebook.com\/gacanepa\",\"https:\/\/ar.linkedin.com\/in\/gacanepa\",\"https:\/\/x.com\/gacanepa\"],\"url\":\"https:\/\/www.systemcodegeeks.com\/author\/gabriel-canepa\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Apache enable SSL \/ TLS tutorial - System Code Geeks - 2026","description":"Interested to learn more about Apache SSL\/TLS?Then check out our detailed Apache enable SSL \/ TLS Tutorial where we provide a compilation of Apache HTTP Server tutorials that will help you get started with this web server.","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\/apache\/apache-ssl-tls-tutorial\/","og_locale":"en_US","og_type":"article","og_title":"Apache enable SSL \/ TLS tutorial - System Code Geeks - 2026","og_description":"Interested to learn more about Apache SSL\/TLS?Then check out our detailed Apache enable SSL \/ TLS Tutorial where we provide a compilation of Apache HTTP Server tutorials that will help you get started with this web server.","og_url":"https:\/\/www.systemcodegeeks.com\/web-servers\/apache\/apache-ssl-tls-tutorial\/","og_site_name":"System Code Geeks","article_publisher":"https:\/\/www.facebook.com\/systemcodegeeks","article_author":"https:\/\/www.facebook.com\/gacanepa","article_published_time":"2016-03-04T15:11:05+00:00","article_modified_time":"2018-05-31T12:05:39+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/apache-logo.jpg","type":"image\/jpeg"}],"author":"Gabriel Canepa","twitter_card":"summary_large_image","twitter_creator":"@gacanepa","twitter_site":"@systemcodegeeks","twitter_misc":{"Written by":"Gabriel Canepa","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.systemcodegeeks.com\/web-servers\/apache\/apache-ssl-tls-tutorial\/#article","isPartOf":{"@id":"https:\/\/www.systemcodegeeks.com\/web-servers\/apache\/apache-ssl-tls-tutorial\/"},"author":{"name":"Gabriel Canepa","@id":"https:\/\/www.systemcodegeeks.com\/#\/schema\/person\/967da353d0f1a1de21c9504942625a5f"},"headline":"Apache enable SSL \/ TLS tutorial","datePublished":"2016-03-04T15:11:05+00:00","dateModified":"2018-05-31T12:05:39+00:00","mainEntityOfPage":{"@id":"https:\/\/www.systemcodegeeks.com\/web-servers\/apache\/apache-ssl-tls-tutorial\/"},"wordCount":1014,"commentCount":1,"publisher":{"@id":"https:\/\/www.systemcodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.systemcodegeeks.com\/web-servers\/apache\/apache-ssl-tls-tutorial\/#primaryimage"},"thumbnailUrl":"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/apache-logo.jpg","articleSection":["Apache"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.systemcodegeeks.com\/web-servers\/apache\/apache-ssl-tls-tutorial\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.systemcodegeeks.com\/web-servers\/apache\/apache-ssl-tls-tutorial\/","url":"https:\/\/www.systemcodegeeks.com\/web-servers\/apache\/apache-ssl-tls-tutorial\/","name":"Apache enable SSL \/ TLS tutorial - System Code Geeks - 2026","isPartOf":{"@id":"https:\/\/www.systemcodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.systemcodegeeks.com\/web-servers\/apache\/apache-ssl-tls-tutorial\/#primaryimage"},"image":{"@id":"https:\/\/www.systemcodegeeks.com\/web-servers\/apache\/apache-ssl-tls-tutorial\/#primaryimage"},"thumbnailUrl":"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/apache-logo.jpg","datePublished":"2016-03-04T15:11:05+00:00","dateModified":"2018-05-31T12:05:39+00:00","description":"Interested to learn more about Apache SSL\/TLS?Then check out our detailed Apache enable SSL \/ TLS Tutorial where we provide a compilation of Apache HTTP Server tutorials that will help you get started with this web server.","breadcrumb":{"@id":"https:\/\/www.systemcodegeeks.com\/web-servers\/apache\/apache-ssl-tls-tutorial\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.systemcodegeeks.com\/web-servers\/apache\/apache-ssl-tls-tutorial\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.systemcodegeeks.com\/web-servers\/apache\/apache-ssl-tls-tutorial\/#primaryimage","url":"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/apache-logo.jpg","contentUrl":"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/apache-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.systemcodegeeks.com\/web-servers\/apache\/apache-ssl-tls-tutorial\/#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":"Apache","item":"https:\/\/www.systemcodegeeks.com\/category\/web-servers\/apache\/"},{"@type":"ListItem","position":4,"name":"Apache enable SSL \/ TLS tutorial"}]},{"@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\/967da353d0f1a1de21c9504942625a5f","name":"Gabriel Canepa","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.systemcodegeeks.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/27b3ea2a3fb1de4ed1c8694a1465c099a86586d8b833a0d852a26d76d750df9f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/27b3ea2a3fb1de4ed1c8694a1465c099a86586d8b833a0d852a26d76d750df9f?s=96&d=mm&r=g","caption":"Gabriel Canepa"},"description":"Gabriel Canepa is a Linux Foundation Certified System Administrator (LFCS-1500-0576-0100) and web developer from Villa Mercedes, San Luis, Argentina. He works for a worldwide leading consumer product company and takes great pleasure in using FOSS tools to increase productivity in all areas of his daily work. When he's not typing commands or writing code or articles, he enjoys telling bedtime stories with his wife to his two little daughters and playing with them, the great pleasure of his life.","sameAs":["http:\/\/www.gabrielcanepa.com.ar\/","https:\/\/www.facebook.com\/gacanepa","https:\/\/ar.linkedin.com\/in\/gacanepa","https:\/\/x.com\/gacanepa"],"url":"https:\/\/www.systemcodegeeks.com\/author\/gabriel-canepa\/"}]}},"_links":{"self":[{"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/posts\/844","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\/15"}],"replies":[{"embeddable":true,"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/comments?post=844"}],"version-history":[{"count":0,"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/posts\/844\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/media\/184"}],"wp:attachment":[{"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/media?parent=844"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/categories?post=844"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/tags?post=844"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}