Skip to content

Instantly share code, notes, and snippets.

@CeoFred
Last active December 19, 2020 21:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save CeoFred/56cae47b760565baf985251edac12583 to your computer and use it in GitHub Desktop.
Save CeoFred/56cae47b760565baf985251edac12583 to your computer and use it in GitHub Desktop.
The following files are used in one of my blog post which talks about setting up ssl for apache server found here https://blog.codemon.me/fix-request-redirecting-to-https-secured-connection-on-local-codeigniter-3
[ req ]
default_bits = 2048
default_keyfile = server-key.pem
distinguished_name = subject
req_extensions = req_ext
x509_extensions = x509_ext
string_mask = utf8only
[ subject ]
countryName = Country Name (2 letter code)
countryName_default = US
stateOrProvinceName = State or Province Name (full name)
stateOrProvinceName_default = NY
localityName = Locality Name (eg, city)
localityName_default = New York
organizationName = Organization Name (eg, company)
organizationName_default = Example, LLC
commonName = Common Name (e.g. server FQDN or YOUR name)
commonName_default = {{DOMAIN}}
emailAddress = Email Address
emailAddress_default = test@example.com
[ x509_ext ]
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer
basicConstraints = CA:FALSE
keyUsage = digitalSignature, keyEncipherment
subjectAltName = @alternate_names
nsComment = "OpenSSL Generated Certificate"
[ req_ext ]
subjectKeyIdentifier = hash
basicConstraints = CA:FALSE
keyUsage = digitalSignature, keyEncipherment
subjectAltName = @alternate_names
nsComment = "OpenSSL Generated Certificate"
[ alternate_names ]
DNS.1 = {{DOMAIN}}
@echo off
set /p domain="Enter Domain: "
set OPENSSL_CONF=../conf/openssl.cnf
if not exist .\%domain% mkdir .\%domain%
..\bin\openssl req -config cert.conf -new -sha256 -newkey rsa:2048 -nodes -keyout %domain%\server.key -x509 -days 365 -out %domain%\server.crt
echo.
echo -----
echo The certificate was provided.
echo.
pause
<div class="entry-content" style="height: auto !important;">
<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" width="772" height="250" src="https://shellcreeper.com/blog/wp-content/uploads/2018/03/xampp-ssl.png" alt="" class="wp-image-2574" srcset="https://shellcreeper.com/blog/wp-content/uploads/2018/03/xampp-ssl.png 772w, https://shellcreeper.com/blog/wp-content/uploads/2018/03/xampp-ssl-300x97.png 300w, https://shellcreeper.com/blog/wp-content/uploads/2018/03/xampp-ssl-768x249.png 768w" sizes="(max-width: 772px) 100vw, 772px"></figure></div>
<p>Chrome browser updates has become a burden for local development. Not only they decided to disable .dev domain for local development, they also really have specific configuration in SSL Cert to show the site as secure.</p>
<p>In this step by step tutorial I will try to explain&nbsp; the walk-through to create SSL cert locally to be used in XAMPP in Windows.</p>
<span id="more-2573"></span>
<div class="fx-adsense" style="width: 360px; height: 300px;">
<!-- Penny Responsive -->
<ins class="adsbygoogle" style="display: block; height: 300px; width: 360px;" data-ad-client="ca-pub-3503979703251504" data-ad-slot="1187292281" data-ad-format="auto" data-adsbygoogle-status="done"><ins id="aswift_1_expand" style="display: inline-table; border: none; height: 300px; margin: 0px; padding: 0px; position: relative; visibility: visible; width: 360px; background-color: transparent;" tabindex="0" title="Advertisement" aria-label="Advertisement"><ins id="aswift_1_anchor" style="display: block; border: none; height: 300px; margin: 0px; padding: 0px; position: relative; visibility: visible; width: 360px; background-color: transparent; overflow: hidden;"><iframe id="aswift_1" name="aswift_1" style="left: 0px; position: absolute; top: 0px; border: 0px; width: 360px; height: 300px;" sandbox="allow-forms allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-top-navigation-by-user-activation" width="360" height="300" frameborder="0" src="https://googleads.g.doubleclick.net/pagead/ads?guci=2.2.0.0.2.2.0.0&amp;client=ca-pub-3503979703251504&amp;output=html&amp;h=280&amp;slotname=1187292281&amp;adk=1995889137&amp;adf=3149926270&amp;pi=t.ma~as.1187292281&amp;w=360&amp;fwrn=4&amp;fwrnh=100&amp;lmt=1608333194&amp;rafmt=1&amp;psa=1&amp;format=360x280&amp;url=https%3A%2F%2Fshellcreeper.com%2Fhow-to-create-valid-ssl-in-localhost-for-xampp%2F&amp;flash=0&amp;fwr=0&amp;rpe=1&amp;resp_fmts=3&amp;wgl=1&amp;adsid=ChAIgOb2_gUQoq-_75Dgu7d_EkwA9DN3TdUqt7LBHWSnbaCpbWZ46ViWmtqS6_IEIjiGK_SHd08tXIQt94JjH-0TgroGsCXR2Jgs9sQeOF7OMpIfhnlXxwbSqNyZxWlL&amp;uach=WyJXaW5kb3dzIiwiNi4zIiwieDg2IiwiIiwiODcuMC40MjgwLjg4IixbXV0.&amp;tt_state=W3siaXNzdWVyT3JpZ2luIjoiaHR0cHM6Ly9hZHNlcnZpY2UuZ29vZ2xlLmNvbSIsInN0YXRlIjowfSx7Imlzc3Vlck9yaWdpbiI6Imh0dHBzOi8vYXR0ZXN0YXRpb24uYW5kcm9pZC5jb20iLCJzdGF0ZSI6MH1d&amp;dt=1608333115462&amp;bpp=425&amp;bdt=2815&amp;idt=2228&amp;shv=r20201203&amp;cbv=r20190131&amp;ptt=9&amp;saldr=aa&amp;abxe=1&amp;cookie=ID%3Df41331ec4adfa3da-225fa4748ea6009d%3AT%3D1608407954%3ART%3D1608407954%3AS%3DALNI_MaYXrBXtefj-2kjKgLiL3-Ruw0zQA&amp;prev_fmts=0x0%2C1226x603&amp;nras=2&amp;correlator=6567660144592&amp;frm=20&amp;pv=1&amp;ga_vid=1554063896.1608329862&amp;ga_sid=1608333117&amp;ga_hid=1421456077&amp;ga_fc=0&amp;u_tz=60&amp;u_his=3&amp;u_java=0&amp;u_h=768&amp;u_w=1366&amp;u_ah=768&amp;u_aw=1366&amp;u_cd=24&amp;u_nplug=3&amp;u_nmime=4&amp;adx=603&amp;ady=692&amp;biw=1226&amp;bih=603&amp;scr_x=0&amp;scr_y=0&amp;eid=21066922%2C21068083&amp;oid=3&amp;pvsid=3128791270941849&amp;pem=873&amp;ref=https%3A%2F%2Fwww.google.com%2F&amp;rx=0&amp;eae=0&amp;fc=1920&amp;brdim=0%2C0%2C0%2C0%2C1366%2C0%2C1366%2C768%2C1242%2C603&amp;vis=1&amp;rsz=%7C%7CpeEbr%7C&amp;abl=CS&amp;pfx=0&amp;fu=8320&amp;bc=31&amp;jar=2020-12-19-20&amp;ifi=1&amp;uci=a!1&amp;btvi=1&amp;fsb=1&amp;xpc=xI4FZQaaR9&amp;p=https%3A//shellcreeper.com&amp;dtd=79416" marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" scrolling="no" allowfullscreen="true" data-google-container-id="a!1" data-google-query-id="CLy1rPv22u0CFSPB5godIvwIfQ" data-load-complete="true"></iframe></ins></ins></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div><!-- .fx-adsense -->
<p>In my XAMPP install I basically&nbsp; have a clone to all the site that I managed.&nbsp; And All of them (of course) use SSL/HTTPS.</p>
<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" width="932" height="544" src="https://shellcreeper.com/blog/wp-content/uploads/2018/03/xampp-local-ssl-screenshot.jpg" alt="" class="wp-image-2576" srcset="https://shellcreeper.com/blog/wp-content/uploads/2018/03/xampp-local-ssl-screenshot.jpg 932w, https://shellcreeper.com/blog/wp-content/uploads/2018/03/xampp-local-ssl-screenshot-300x175.jpg 300w, https://shellcreeper.com/blog/wp-content/uploads/2018/03/xampp-local-ssl-screenshot-768x448.jpg 768w" sizes="(max-width: 932px) 100vw, 932px"></figure></div>
<p>Here’s the step by&nbsp; step guide:</p>
<p>In this step we are going to crate SSL and setup “site.test” website.</p>
<h2>1. Navigate to Apache directory in XAMPP.</h2>
<p>In regular install it’s in <strong>C:\xampp\apache</strong>.</p>
<h2>2. Create a folder in that page.</h2>
<p>This is where we will store our cert. In this example I will create “crt” folder. So we will have <strong>C:\xampp\apache\crt</strong></p>
<h2>3. Add this files.</h2>
<ul><li><a href="https://gist.github.com/turtlepod/3b8d8d0eef29de019951aa9d9dcba546" target="_blank" rel="noopener noreferrer">cert.conf</a></li><li><a href="https://gist.github.com/turtlepod/e94928cddbfc46cfbaf8c3e5856577d0" target="_blank" rel="noopener noreferrer">make-cert.bat</a></li></ul>
<h2>4. Edit cert.conf and Run make-cert.bat</h2>
<p>Change&nbsp;{{DOMAIN}} text using the domain we want to use, in this case <strong>site.test</strong> and save.</p>
<p>Double click the make-cert.bat and input the domain <strong>site.test</strong> when prompted. And just do enter in other question since we already set the default from cert.conf.</p>
<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" width="975" height="509" src="https://shellcreeper.com/blog/wp-content/uploads/2018/03/make-cert.jpg" alt="" class="wp-image-2578" srcset="https://shellcreeper.com/blog/wp-content/uploads/2018/03/make-cert.jpg 975w, https://shellcreeper.com/blog/wp-content/uploads/2018/03/make-cert-300x157.jpg 300w, https://shellcreeper.com/blog/wp-content/uploads/2018/03/make-cert-768x401.jpg 768w" sizes="(max-width: 975px) 100vw, 975px"></figure></div>
<div class="wpe-box wpe-box-note">
<p><strong>Note</strong>: I don’t know how to do text replace in .bat script, if you do, let me know in the comment how to do it and I will update make-cert.bat to automatically replace the {{DOMAIN}} with the domain input.</p>
</div>
<h2>5. Install the cert in windows.</h2>
<p>After that, you will see site.test folder created. In that folder we will have <strong>server.crt</strong> and <strong>server.key</strong>. This is our SSL certificate.</p>
<p>Double click on the server.crt to install it on Windows so Windows can trust it.</p>
<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" width="546" height="622" src="https://shellcreeper.com/blog/wp-content/uploads/2018/03/cert-window.png" alt="" class="wp-image-2579" srcset="https://shellcreeper.com/blog/wp-content/uploads/2018/03/cert-window.png 546w, https://shellcreeper.com/blog/wp-content/uploads/2018/03/cert-window-263x300.png 263w" sizes="(max-width: 546px) 100vw, 546px"></figure></div>
<p>And then select <strong>Local Machine</strong> as Store Location.</p>
<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" width="543" height="533" src="https://shellcreeper.com/blog/wp-content/uploads/2018/03/install-cert.png" alt="" class="wp-image-2580" srcset="https://shellcreeper.com/blog/wp-content/uploads/2018/03/install-cert.png 543w, https://shellcreeper.com/blog/wp-content/uploads/2018/03/install-cert-300x294.png 300w" sizes="(max-width: 543px) 100vw, 543px"></figure></div>
<p>And then Select “<strong>Place all certificate in the following store</strong>” and click <strong>browse</strong> and select Trusted Root Certification Authorities.</p>
<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" width="541" height="532" src="https://shellcreeper.com/blog/wp-content/uploads/2018/03/install-cert-as-trusted.png" alt="" class="wp-image-2581" srcset="https://shellcreeper.com/blog/wp-content/uploads/2018/03/install-cert-as-trusted.png 541w, https://shellcreeper.com/blog/wp-content/uploads/2018/03/install-cert-as-trusted-300x295.png 300w" sizes="(max-width: 541px) 100vw, 541px"></figure></div>
<p>Click <strong>Next</strong> and <strong>Finish</strong>.</p>
<p>And now this cert is installed and trusted in Windows. Next is how how to use this cert in XAMPP.</p>
<h2>6. Add the site in Windows hosts</h2>
<ol><li>Open notepad as administrator.</li><li>Edit&nbsp;C:\Windows\System32\drivers\etc\hosts (the file have no ext)</li><li>Add this in a new line:</li></ol>
<pre class="wp-block-preformatted prettyprint linenums prettyprinted" style=""><ol class="linenums"><li class="L0"><span class="lit">127.0</span><span class="pun">.</span><span class="lit">0.1</span><span class="pln"> site</span><span class="pun">.</span><span class="pln">test</span></li></ol></pre>
<p>This will tell windows to load XAMPP when we visit http://site.test You can try and it will show XAMPP dashboard page.</p>
<h2>7. Add the site in XAMPP conf.</h2>
<p>We need to enable SSL for this domain and let XAMPP know where we store the SSL Cert. So we need to edit <strong>C:\xampp\apache\conf\extra\httpd-xampp.conf</strong></p>
<p>And add this code at the bottom:</p>
<pre class="wp-block-preformatted prettyprint linenums prettyprinted" style=""><ol class="linenums"><li class="L0"><span class="com">## site.test</span></li><li class="L1"><span class="pln"> </span><span class="pun">&lt;</span><span class="typ">VirtualHost</span><span class="pln"> </span><span class="pun">*:</span><span class="lit">80</span><span class="pun">&gt;</span></li><li class="L2"><span class="pln"> </span><span class="typ">DocumentRoot</span><span class="pln"> </span><span class="str">"C:/xampp/htdocs"</span></li><li class="L3"><span class="pln"> </span><span class="typ">ServerName</span><span class="pln"> site</span><span class="pun">.</span><span class="pln">test</span></li><li class="L4"><span class="pln"> </span><span class="typ">ServerAlias</span><span class="pln"> </span><span class="pun">*.</span><span class="pln">site</span><span class="pun">.</span><span class="pln">test</span></li><li class="L5"><span class="pln"> </span><span class="pun">&lt;/</span><span class="typ">VirtualHost</span><span class="pun">&gt;</span></li><li class="L6"><span class="pln"> </span><span class="pun">&lt;</span><span class="typ">VirtualHost</span><span class="pln"> </span><span class="pun">*:</span><span class="lit">443</span><span class="pun">&gt;</span></li><li class="L7"><span class="pln"> </span><span class="typ">DocumentRoot</span><span class="pln"> </span><span class="str">"C:/xampp/htdocs"</span></li><li class="L8"><span class="pln"> </span><span class="typ">ServerName</span><span class="pln"> site</span><span class="pun">.</span><span class="pln">test</span></li><li class="L9"><span class="pln"> </span><span class="typ">ServerAlias</span><span class="pln"> </span><span class="pun">*.</span><span class="pln">site</span><span class="pun">.</span><span class="pln">test</span></li><li class="L0"><span class="pln"> </span><span class="typ">SSLEngine</span><span class="pln"> on</span></li><li class="L1"><span class="pln"> </span><span class="typ">SSLCertificateFile</span><span class="pln"> </span><span class="str">"crt/site.test/server.crt"</span></li><li class="L2"><span class="pln"> </span><span class="typ">SSLCertificateKeyFile</span><span class="pln"> </span><span class="str">"crt/site.test/server.key"</span></li><li class="L3"><span class="pln"> </span><span class="pun">&lt;/</span><span class="typ">VirtualHost</span><span class="pun">&gt;</span></li></ol></pre>
<p>After that, you will need to restart Apache in XAMPP.&nbsp; It’s very simple, simply open XAMPP Control Panel and <strong>Stop</strong> and re-<strong>Start</strong> Apache Module.</p>
<div class="wpe-box wpe-box-note">
<p><strong>Tips</strong>: In XAMPP conf, as you can see you can change the domain root directory if needed. Eg. as sub-dir in htdocs.</p>
</div>
<h2>8. Restart your browser and Done!</h2>
<p>This is required to load the certificate. And visit the domain on your browser, and you will see green lock!</p>
<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" width="806" height="519" src="https://shellcreeper.com/blog/wp-content/uploads/2018/03/secure-https-lock-in-chrome-ssl-localhost.png" alt="" class="wp-image-2583" srcset="https://shellcreeper.com/blog/wp-content/uploads/2018/03/secure-https-lock-in-chrome-ssl-localhost.png 806w, https://shellcreeper.com/blog/wp-content/uploads/2018/03/secure-https-lock-in-chrome-ssl-localhost-300x193.png 300w, https://shellcreeper.com/blog/wp-content/uploads/2018/03/secure-https-lock-in-chrome-ssl-localhost-768x495.png 768w" sizes="(max-width: 806px) 100vw, 806px"></figure></div>
<p>I hope this tutorial is useful!</p>
<p>If you already use other method, let me know in the comment <img draggable="false" role="img" class="emoji" alt="🙂" src="https://s.w.org/images/core/emoji/13.0.0/svg/1f642.svg"></p>
<div class="fx-adsense" style="width: 360px; height: 300px;">
<!-- Penny Responsive -->
<ins class="adsbygoogle" style="display: block; height: 300px; width: 360px;" data-ad-client="ca-pub-3503979703251504" data-ad-slot="1187292281" data-ad-format="auto" data-adsbygoogle-status="done"><ins id="aswift_2_expand" style="display: inline-table; border: none; height: 300px; margin: 0px; padding: 0px; position: relative; visibility: visible; width: 360px; background-color: transparent;" tabindex="0" title="Advertisement" aria-label="Advertisement"><ins id="aswift_2_anchor" style="display: block; border: none; height: 300px; margin: 0px; padding: 0px; position: relative; visibility: visible; width: 360px; background-color: transparent; overflow: hidden;"><iframe id="aswift_2" name="aswift_2" style="left: 0px; position: absolute; top: 0px; border: 0px; width: 360px; height: 300px;" sandbox="allow-forms allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-top-navigation-by-user-activation" width="360" height="300" frameborder="0" src="https://googleads.g.doubleclick.net/pagead/ads?guci=2.2.0.0.2.2.0.0&amp;client=ca-pub-3503979703251504&amp;output=html&amp;h=280&amp;slotname=1187292281&amp;adk=1995889137&amp;adf=575147663&amp;pi=t.ma~as.1187292281&amp;w=360&amp;fwrn=4&amp;fwrnh=100&amp;lmt=1608333480&amp;rafmt=1&amp;psa=1&amp;format=360x280&amp;url=https%3A%2F%2Fshellcreeper.com%2Fhow-to-create-valid-ssl-in-localhost-for-xampp%2F&amp;flash=0&amp;fwr=0&amp;rpe=1&amp;resp_fmts=3&amp;wgl=1&amp;uach=WyJXaW5kb3dzIiwiNi4zIiwieDg2IiwiIiwiODcuMC40MjgwLjg4IixbXV0.&amp;tt_state=W3siaXNzdWVyT3JpZ2luIjoiaHR0cHM6Ly9hZHNlcnZpY2UuZ29vZ2xlLmNvbSIsInN0YXRlIjowfSx7Imlzc3Vlck9yaWdpbiI6Imh0dHBzOi8vYXR0ZXN0YXRpb24uYW5kcm9pZC5jb20iLCJzdGF0ZSI6MH1d&amp;dt=1608333115887&amp;bpp=9&amp;bdt=3240&amp;idt=2011&amp;shv=r20201203&amp;cbv=r20190131&amp;ptt=9&amp;saldr=aa&amp;abxe=1&amp;cookie=ID%3Df41331ec4adfa3da-225fa4748ea6009d%3AT%3D1608407954%3ART%3D1608407954%3AS%3DALNI_MaYXrBXtefj-2kjKgLiL3-Ruw0zQA&amp;prev_fmts=0x0%2C1226x603%2C360x280&amp;nras=2&amp;correlator=6567660144592&amp;frm=20&amp;pv=1&amp;ga_vid=1554063896.1608329862&amp;ga_sid=1608333117&amp;ga_hid=1421456077&amp;ga_fc=0&amp;u_tz=60&amp;u_his=3&amp;u_java=0&amp;u_h=768&amp;u_w=1366&amp;u_ah=768&amp;u_aw=1366&amp;u_cd=24&amp;u_nplug=3&amp;u_nmime=4&amp;adx=603&amp;ady=6609&amp;biw=1226&amp;bih=603&amp;scr_x=0&amp;scr_y=4357&amp;eid=21066922%2C21068083&amp;oid=3&amp;psts=AGkb-H_vWtUAJx24CAqgYqKpYHE0yP1a0ysyFratcLz9FAWjGI5zvjY8N8lpx3ArWAI&amp;pvsid=3128791270941849&amp;pem=873&amp;ref=https%3A%2F%2Fwww.google.com%2F&amp;rx=0&amp;eae=0&amp;fc=1920&amp;brdim=0%2C0%2C0%2C0%2C1366%2C0%2C1366%2C768%2C1242%2C603&amp;vis=1&amp;rsz=%7C%7CpeEbr%7C&amp;abl=CS&amp;pfx=0&amp;fu=8320&amp;bc=31&amp;ifi=2&amp;uci=a!2&amp;btvi=2&amp;fsb=1&amp;xpc=L3IVPBMwQ8&amp;p=https%3A//shellcreeper.com&amp;dtd=M" marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" scrolling="no" allowfullscreen="true" data-google-container-id="a!2" data-google-query-id="CNbfxYP42u0CFRpWFQgd1R0M9Q" data-load-complete="true"></iframe></ins></ins></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div><!-- .fx-adsense -->
<div id="jp-relatedposts" class="jp-relatedposts" style="display: block;">
<h3 class="jp-relatedposts-headline"><em>Related</em></h3>
<div class="jp-relatedposts-items jp-relatedposts-items-visual jp-relatedposts-grid "><div class="jp-relatedposts-post jp-relatedposts-post0 jp-relatedposts-post-thumbs" data-post-id="156" data-post-format="false"><a class="jp-relatedposts-post-a" href="https://shellcreeper.com/windows-application-to-develop-wordpress-theme/" title="Windows Application to develop WordPress Theme" data-origin="2573" data-position="0"><img class="jp-relatedposts-post-img" src="https://i2.wp.com/shellcreeper.com/blog/wp-content/uploads/2012/09/notepad++-standard-menu.png?resize=350%2C200&amp;ssl=1" width="350" alt=""></a><h4 class="jp-relatedposts-post-title"><a class="jp-relatedposts-post-a" href="https://shellcreeper.com/windows-application-to-develop-wordpress-theme/" title="Windows Application to develop WordPress Theme" data-origin="2573" data-position="0">Windows Application to develop WordPress Theme</a></h4><p class="jp-relatedposts-post-excerpt">This is my essential list of Windows App to develop WordPress site. How i use Notepad ++, XAMPP, and Tortoise SVN to develop WordPress themes.</p><p class="jp-relatedposts-post-context">Web Dev Log</p></div><div class="jp-relatedposts-post jp-relatedposts-post1 jp-relatedposts-post-thumbs" data-post-id="619" data-post-format="false"><a class="jp-relatedposts-post-a" href="https://shellcreeper.com/from-development-to-deployment-my-wordpress-dev-workflow/" title="From Development to Deployment, My WordPress Dev Workflow" data-origin="2573" data-position="1"><img class="jp-relatedposts-post-img" src="https://i1.wp.com/shellcreeper.com/blog/wp-content/uploads/2013/01/wordpress-dev-staging-deploy.png?resize=350%2C200&amp;ssl=1" width="350" alt=""></a><h4 class="jp-relatedposts-post-title"><a class="jp-relatedposts-post-a" href="https://shellcreeper.com/from-development-to-deployment-my-wordpress-dev-workflow/" title="From Development to Deployment, My WordPress Dev Workflow" data-origin="2573" data-position="1">From Development to Deployment, My WordPress Dev Workflow</a></h4><p class="jp-relatedposts-post-excerpt">It's not always easy to develop a WordPress site. Specially a complex site. I have switching and changing my workflow. Each and every site is unique and not every workflow is suitable for every case. I try to get things done as soon as possible.</p><p class="jp-relatedposts-post-context">WordPress</p></div><div class="jp-relatedposts-post jp-relatedposts-post2 jp-relatedposts-post-thumbs" data-post-id="1602" data-post-format="false"><a class="jp-relatedposts-post-a" href="https://shellcreeper.com/windows-10-essential-software-for-web-development/" title="Windows 10 Essential Software for Web Development" data-origin="2573" data-position="2"><img class="jp-relatedposts-post-img" src="https://i0.wp.com/shellcreeper.com/blog/wp-content/uploads/2016/01/windows-10-setup.jpg?resize=350%2C200&amp;ssl=1" width="350" alt=""></a><h4 class="jp-relatedposts-post-title"><a class="jp-relatedposts-post-a" href="https://shellcreeper.com/windows-10-essential-software-for-web-development/" title="Windows 10 Essential Software for Web Development" data-origin="2573" data-position="2">Windows 10 Essential Software for Web Development</a></h4><p class="jp-relatedposts-post-excerpt">So, last month I bought a new laptop. I actually bought two laptop. The first one is an Acer laptop. Use it for a week, not very happy with it. So I bought Asus. I spent several days to set up and install the laptops. I think it's a good…</p><p class="jp-relatedposts-post-context">Web Dev Log</p></div></div></div> <div class="fx-share">
<ul>
<li class="fx-share-facebook">
<a class="fx-share-button fx-share-button-facebook" href="https://www.facebook.com/sharer.php?u=https://shellcreeper.com/how-to-create-valid-ssl-in-localhost-for-xampp/&amp;t=How+to+Create+Valid+SSL+in+localhost+for+XAMPP" target="_blank" rel="nofollow external"><span class="fx-share-text">Facebook</span></a>
</li>
<li class="fx-share-twitter">
<a class="fx-share-button fx-share-button-twitter" href="https://twitter.com/intent/tweet?url=https://shellcreeper.com/how-to-create-valid-ssl-in-localhost-for-xampp/&amp;text=How+to+Create+Valid+SSL+in+localhost+for+XAMPP&amp;via=turtlepod" target="_blank" rel="nofollow external"><span class="fx-share-text">Twitter</span></a>
</li>
</ul>
</div><!-- .fx-share -->
</div>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment