www.webdeveloper.com
Results 1 to 2 of 2

Thread: Tutorial: How to support HTTPS localhost websites in Windows Apache

  1. #1
    Join Date
    Mar 2013
    Location
    Maine, USA
    Posts
    6

    Lightbulb Tutorial: How to support HTTPS localhost websites in Windows Apache

    How to support secure (HTTPS) websites locally under Windows and Apache

    While it is not possible to use a security certificate to protect local websites accessed via localhost, since it is not a unique public registered domain name, this question outlines a way to work around this limitation. Assuming that the remote website has already been issued a certificate (for example, by using WHM to protect it using an automatic Let's Encrypt free certificate issued by the WHM AutoSSL feature), the local HOSTS file can be used to map the remote domain name as an alias for the IP address of localhost, which is usually 127.0.0.1 .

    In this tutorial, I will use the name DOMAIN as a placeholder for the remote website address (such as example.com). You should replace it with the domain name for a registered domain.

    So, to do local development of DOMAIN under Windows and Apache, start by appending the following line to the HOSTS file on your local computer:

    127.0.0.1 DOMAIN

    Now, browsing to https://DOMAIN will make the browser look into the local file system, exactly as localhost is used in Web addresses to serve files from the local file system.

    The local Apache server now needs to be configured to handle the HTTPS protocol for DOMAIN.

    Most tutorials talk about uncommenting the Include of conf/extra/httpd-ssl.conf, but this is for making the root and all websites on the local server support HTTPS. Some of us have many existing insecure websites and only wish to support one HTTPS website (at a time).

    Using CPanel, locate the Let's Encrypt certificate information for the example website DOMAIN and copy each piece into its own file. You will insert the three file pathnames in the VirtualHost directive below.

    Next, uncomment the following two lines in your local httpd.conf file:

    Code:
    LoadModule ssl_module modules/mod_ssl.so
    LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
    and add the following lines:

    Code:
    Listen 127.0.0.1:443
    SSLSessionCache shmcb:/some/example/path/ssl_scache(512000)
    Options +ExecCGI
    This enables HTTPS support.

    Next, an entry has to be made for each secure website, as follows (choose your own pathnames for your local development website and the three certificate files):

    Code:
    # Secure (TLS) connections for each secure (HTTPS) website
    <VirtualHost *:443>
    ServerName DOMAIN
    DocumentRoot C:/PATH_TO_WEBSITE
    SSLEngine on
    SSLCertificateFile C:/PATH_TO_CRT_FILE
    SSLCertificateKeyFile C:/PATH_TO_KEY_FILE
    SSLCertificateChainFile C:/PATH_TO_CA_FILE
    </VirtualHost>
    The C:/PATH_TO_WEBSITE folder contains the following initial files:

    .htaccess:

    Code:
    # DOMAIN access directives
    DirectoryIndex index.html
    Options -Indexes
    
    Header set Content-Security-Policy "default-src https:; form-action https:"
    Header append Vary: Accept-Encoding
    
    RewriteEngine On 
    RewriteCond %{SERVER_PORT} 80 
    RewriteRule ^(.*)$ https://DOMAIN/$1 [R,L]
    index.html:

    Code:
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="utf-8">
    <meta name="author" content="AUTHOR_NAME">
    <meta name="generator" content="EDITOR_NAME">
    <link rel="stylesheet" href="styles.css?v=1.0">
    <link rel="icon" type="image/x-icon" href="favicon.ico?v=1">
    <title>HTTPS Example</title>
    </head>
    
    <body>
    <h1>Example</h1>
    Welcome to this placeholder website.
    </body>
    </html>
    I hope this tutorial helps others trying to find this basic information. Please, if you find an error, let me know so I can edit in the correction.

  2. #2
    Join Date
    Oct 2017
    Posts
    6
    Thank You.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center

"

"

X vBulletin 4.2.2 Debug Information

  • Page Generation 0.14533 seconds
  • Memory Usage 2,853KB
  • Queries Executed 15 (?)
More Information
Template Usage (33):
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_global_above_footer
  • (1)ad_global_below_navbar
  • (1)ad_global_header1
  • (1)ad_global_header2
  • (1)ad_navbar_below
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)ad_thread_first_post_content
  • (1)ad_thread_last_post_content
  • (5)bbcode_code
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)headinclude_bottom
  • (2)memberaction_dropdown
  • (1)navbar
  • (4)navbar_link
  • (1)navbar_moderation
  • (1)navbar_noticebit
  • (1)navbar_tabs
  • (2)option
  • (2)postbit
  • (2)postbit_onlinestatus
  • (2)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available (6):
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files (26):
  • ./showthread.php
  • ./global.php
  • ./includes/class_bootstrap.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/functions_navigation.php
  • ./includes/class_friendly_url.php
  • ./includes/class_hook.php
  • ./includes/class_bootstrap_framework.php
  • ./vb/vb.php
  • ./vb/phrase.php
  • ./includes/functions_facebook.php
  • ./includes/functions_calendar.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_notice.php
  • ./packages/vbattach/attach.php
  • ./vb/types.php
  • ./vb/cache.php
  • ./vb/cache/db.php
  • ./vb/cache/observer/db.php
  • ./vb/cache/observer.php 

Hooks Called (73):
  • init_startup
  • friendlyurl_resolve_class
  • init_startup_session_setup_start
  • database_pre_fetch_array
  • database_post_fetch_array
  • init_startup_session_setup_complete
  • global_bootstrap_init_start
  • global_bootstrap_init_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • load_show_variables
  • load_forum_show_variables
  • global_state_check
  • global_bootstrap_complete
  • global_start
  • style_fetch
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • strip_bbcode
  • friendlyurl_clean_fragment
  • friendlyurl_geturl
  • forumjump
  • cache_templates
  • cache_templates_process
  • template_register_var
  • template_render_output
  • fetch_template_start
  • fetch_template_complete
  • parse_templates
  • fetch_musername
  • notices_check_start
  • notices_noticebit
  • process_templates_complete
  • friendlyurl_redirect_canonical
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • memberaction_dropdown
  • tag_fetchbit
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • build_navigation_data
  • build_navigation_array
  • check_navigation_permission
  • process_navigation_links_start
  • process_navigation_links_complete
  • set_navigation_menu_element
  • build_navigation_menudata
  • build_navigation_listdata
  • build_navigation_list
  • set_navigation_tab_main
  • set_navigation_tab_fallback
  • navigation_tab_complete
  • fb_like_button
  • showthread_complete
  • page_templates