<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Wordpress | DCMST</title><link>https://portfolio.devcrumbs.com/tag/wordpress/</link><atom:link href="https://portfolio.devcrumbs.com/tag/wordpress/index.xml" rel="self" type="application/rss+xml"/><description>Wordpress</description><generator>Wowchemy (https://wowchemy.com)</generator><language>en-us</language><lastBuildDate>Sun, 03 Sep 2017 00:00:00 +0000</lastBuildDate><image><url>https://portfolio.devcrumbs.com/media/icon_hu28290437db960aa4e7d19bb9f7230401_6937_512x512_fill_lanczos_center_3.png</url><title>Wordpress</title><link>https://portfolio.devcrumbs.com/tag/wordpress/</link></image><item><title>WordPress with Let's Encrypt SSL Certificate on a Load Balancer</title><link>https://portfolio.devcrumbs.com/wordpress-lets-encrypt-ssl-certificate-load-balancer/</link><pubDate>Sun, 03 Sep 2017 00:00:00 +0000</pubDate><guid>https://portfolio.devcrumbs.com/wordpress-lets-encrypt-ssl-certificate-load-balancer/</guid><description>&lt;p>Hi again,&lt;/p>
&lt;p>As many of you know a lot of &amp;ldquo;Production&amp;rdquo; applications need to be configured to provide High Availability.
With that in mind, a best practice architecture to your application is to add a Load Balancer as a front end who distribute your traffic between your application nodes,
as you can appreciate on the next image:&lt;/p>
&lt;figure id="figure-ha-load-balancer">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="HA Load Balancer diagram" srcset="
/media/posts/wordpress-lets-encrypt-ssl-certificate-load-balancer/LoadBalancerHA_huebbf17380e8f6fabe11a80fc093dace1_79250_35d1701724397631ee8d755949b6ae4b.webp 400w,
/media/posts/wordpress-lets-encrypt-ssl-certificate-load-balancer/LoadBalancerHA_huebbf17380e8f6fabe11a80fc093dace1_79250_5dad269015cb44aa479976dd0b5659d2.webp 760w,
/media/posts/wordpress-lets-encrypt-ssl-certificate-load-balancer/LoadBalancerHA_huebbf17380e8f6fabe11a80fc093dace1_79250_1200x1200_fit_q90_h2_lanczos_3.webp 1200w"
src="https://portfolio.devcrumbs.com/media/posts/wordpress-lets-encrypt-ssl-certificate-load-balancer/LoadBalancerHA_huebbf17380e8f6fabe11a80fc093dace1_79250_35d1701724397631ee8d755949b6ae4b.webp"
width="760"
height="662"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption>
HA Load Balancer diagram
&lt;/figcaption>&lt;/figure>
&lt;h2 id="ssl-offloading">SSL Offloading&lt;/h2>
&lt;p>In this case, my &amp;ldquo;Production&amp;rdquo; application is my blog, and I will install a SSL Certificate on the Cloud Load Balancer(CLB)
to offloading the encryption/decryption to the CLB instead of doing it on the webserver.
That way your webservers uses port 80 (HTTP), as always, and you serve your content trought port 443(HTTPS).&lt;/p>
&lt;figure id="figure-ssl-offloading">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="SSL-Offloading diagram" srcset="
/media/posts/wordpress-lets-encrypt-ssl-certificate-load-balancer/SSL-Offloading_hu8f744432393ec982cce29c1ca941e414_24258_ff5647092c335f508c65542f46c4bdb0.webp 400w,
/media/posts/wordpress-lets-encrypt-ssl-certificate-load-balancer/SSL-Offloading_hu8f744432393ec982cce29c1ca941e414_24258_b3cb8a94ae9c78f78469d7a1fe4e5f56.webp 760w,
/media/posts/wordpress-lets-encrypt-ssl-certificate-load-balancer/SSL-Offloading_hu8f744432393ec982cce29c1ca941e414_24258_1200x1200_fit_q90_h2_lanczos.webp 1200w"
src="https://portfolio.devcrumbs.com/media/posts/wordpress-lets-encrypt-ssl-certificate-load-balancer/SSL-Offloading_hu8f744432393ec982cce29c1ca941e414_24258_ff5647092c335f508c65542f46c4bdb0.webp"
width="760"
height="238"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption>
SSL-Offloading diagram
&lt;/figcaption>&lt;/figure>
&lt;p>Here are the what I use to configure my WordPress with SSL Certificate:&lt;/p>
&lt;ul>
&lt;li>SSL Certificate issued using Let&amp;rsquo;s Encrypt&lt;/li>
&lt;li>A Client of Let&amp;rsquo;s Encrypt called acme&lt;/li>
&lt;li>A Cloud Load Balancer&lt;/li>
&lt;li>A WordPress installation&lt;/li>
&lt;/ul>
&lt;h3 id="step-1-install-acmesh-client">Step 1: Install acme.sh client&lt;/h3>
&lt;p>There is a lot of &lt;a href="https://letsencrypt.org/docs/client-options/" target="_blank" rel="noopener">ACME clients&lt;/a> supported by Let&amp;rsquo;s Encrypt, the most popular is &lt;a href="https://certbot.eff.org" target="_blank" rel="noopener">Certbot.&lt;/a> However, I prefer to use &lt;a href="https://github.com/Neilpang/acme.sh" target="_blank" rel="noopener">acme.sh&lt;/a>.&lt;/p>
&lt;p>Let&amp;rsquo;s install it:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">git clone https://github.com/Neilpang/acme.sh.git
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">cd&lt;/span> acme.sh
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Create a data home directory&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo mkdir -p /opt/acme/data
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Actual command to install it&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">bash acme.sh --install --home /opt/acme --config-home /opt/acme/data --certhome /opt/acme/data/ssl-certs --accountemail your@email.com
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="step-2-issue-ssl-certificate">Step 2: Issue SSL Certificate&lt;/h3>
&lt;p>Once acme.sh is installed, we proceed to issue our first SSL Certificate:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">/opt/acme/acme.sh --issue -d example.com -w /var/www/vhosts/example.com/public_html
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">[&lt;/span>Mon Aug &lt;span class="m">25&lt;/span> 06:04:07 UTC 2017&lt;span class="o">]&lt;/span> Creating domain key
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">[&lt;/span>Mon Aug &lt;span class="m">25&lt;/span> 06:04:07 UTC 2017&lt;span class="o">]&lt;/span> The domain key is here: /opt/acme/data/ssl-certs/example.com/example.com.key
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">[&lt;/span>Mon Aug &lt;span class="m">25&lt;/span> 06:04:07 UTC 2017&lt;span class="o">]&lt;/span> Single &lt;span class="nv">domain&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;example.com&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">[&lt;/span>Mon Aug &lt;span class="m">25&lt;/span> 06:04:07 UTC 2017&lt;span class="o">]&lt;/span> Getting domain auth token &lt;span class="k">for&lt;/span> each domain
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">[&lt;/span>Mon Aug &lt;span class="m">25&lt;/span> 06:04:07 UTC 2017&lt;span class="o">]&lt;/span> Getting webroot &lt;span class="k">for&lt;/span> &lt;span class="nv">domain&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;example.com&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">[&lt;/span>Mon Aug &lt;span class="m">25&lt;/span> 06:04:07 UTC 2017&lt;span class="o">]&lt;/span> Getting new-authz &lt;span class="k">for&lt;/span> &lt;span class="nv">domain&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;example.com&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">[&lt;/span>Mon Aug &lt;span class="m">25&lt;/span> 06:04:08 UTC 2017&lt;span class="o">]&lt;/span> The new-authz request is ok.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">[&lt;/span>Mon Aug &lt;span class="m">25&lt;/span> 06:04:08 UTC 2017&lt;span class="o">]&lt;/span> Verifying:example.com
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">[&lt;/span>Mon Aug &lt;span class="m">25&lt;/span> 06:04:11 UTC 2017&lt;span class="o">]&lt;/span> Success
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">[&lt;/span>Mon Aug &lt;span class="m">25&lt;/span> 06:04:11 UTC 2017&lt;span class="o">]&lt;/span> Verify finished, start to sign.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">[&lt;/span>Mon Aug &lt;span class="m">25&lt;/span> 06:04:11 UTC 2017&lt;span class="o">]&lt;/span> Cert success.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">-----BEGIN CERTIFICATE-----
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">MIIE/zCCA+egAwIBAgISA2AIs/G8gWjkRkNOUb7zmqh1MA0GCSqGSIb3DQEBCwUA
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xNzA4MjgwNTA0MDBaFw0x
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">NzExMjYwNTA0MDBaMBkxFzAVBgNVBAMTDmNvb2tpZWxhYnMubmV0MIIBIjANBgkq
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAo8/4fXH0dOHcSlyXpsBoULhwQYkz4m0J
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">MegRHU2mhyy/jfKWM6KHDxHpFWUFajLJ/ORE4uncvjmRYeSVBxgv2R2cYoZyKd6v
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">txT+Cdj3jD9fBfDerfdfsdfsd6Y6mlr6Im61afKsFXIgLsprBpK22JU6HOz+0Fdo
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">lan09aaF8zLPtVzdfJw9MU55K7nzerxO8j4ro2lve0PHExkMIBCrXey50wcuqQRY
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">hwkbbXsm+wTES7TCn3tooSzFq6ore3JrSckxhFQ96EOea0s9CgYnw4d9rU/b3jyK
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">bFCILEJK64vgFHx0qvd0hBJFJG/HUtAXAVrFQjjlZlCmCMbnee1UTQIDAQABo4IC
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">DjCCAgowDgYDVR0pasoasoasogWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">BQcDAjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBR2KRpXKKgTorwfXpo44wgKyFUl
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">QzAfBgNVHSMEGDAWgBSoSmpjBH3duubRObemRWXv86jsoTBvBggrBgEFBQcBAQRj
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">MGEwLgYIKwYBBQUHMAASdTdddHA6Ly9vY3NwLmludC14My5sZXRzZW5jcnlwdC5v
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">cmcwLwYIKwYBBQUHMAKGI2h0dHA6Ly9jZXJ0LmludC14My5sZXRzZW5jcnlwdC5v
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">cmcvMBkGA1UdEQQSMBCCDmNvb2tpZWxhYnMubmV0MIH+BgNVHSAEgfYwgfMwCAYG
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Z4EMAQIBMIHmBgsrBgEEAYLfEwEBATCB1jAmBggrBgEFBQcCARYaaHR0cDovL2Nw
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">cy5sZXRzZW5jcnlwdC5vcmcwgasGCCsGAQUFBwICMIGeDIGbVGhpcyBDZXJ0aWZp
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Y2F0ZSBtYXkgb25seSBiZSByZWxpZWQgdXBvbiBieSBSZWx5aW5nIFBhcnRpZXMg
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">YW5kIG9ubHkgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBDZXJ0aWZpY2F0ZSBQb2xp
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Y3kgZm91bmQgYXQgaHR0cHM6Ly9sZXRzZW5jcnlwdC5vcmcvcmVwb3NpdG9yeS8w
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">DQYJKoZIhvcNAQELBQADggEBAFVGs82tzyVER6U0x7p/Q+6xplDFd6ap/dVX9G6i
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">eRPf4ayGykPSH9J3ewu398LOQd3DE93oWbqc7PfEC40Z5HqvCEY3fl9auep99/IF
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">rwhf36J7PXvEsPrUB6pxNFSBw9WX366Z1MP8qoIzm3XYEpp2D/SPniWY5+eQ42Pj
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">WNxxVksA4kFUF9wgKcrsCNTm0X8GZj5HUXC1OwtlopY2w42QrAMGwz1jM4nxv5Mc
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Jim+nT0zmJUhAdQi8ocDjAl2PvcfdgfmkMr9IWH3al/GJSKy3a9Cq+BaIsIUYi6E
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">8M8Mj+00ONNn1folm9aVn+FW5fVCaxYN32ir8PnoTWkOXK8&lt;span class="o">=&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">-----END CERTIFICATE-----
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">[&lt;/span>Mon Aug &lt;span class="m">25&lt;/span> 06:04:11 UTC 2017&lt;span class="o">]&lt;/span> Your cert is in /opt/acme/data/ssl-certs/example.com/example.com.cer
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">[&lt;/span>Mon Aug &lt;span class="m">25&lt;/span> 06:04:11 UTC 2017&lt;span class="o">]&lt;/span> Your cert key is in /opt/acme/data/ssl-certs/example.com/example.com.key
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">[&lt;/span>Mon Aug &lt;span class="m">25&lt;/span> 06:04:11 UTC 2017&lt;span class="o">]&lt;/span> The intermediate CA cert is in /opt/acme/data/ssl-certs/example.com/ca.cer
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">[&lt;/span>Mon Aug &lt;span class="m">25&lt;/span> 06:04:11 UTC 2017&lt;span class="o">]&lt;/span> And the full chain certs is there: /opt/acme/data/ssl-certs/example.com/fullchain.cer
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Where the explained options are:&lt;/p>
&lt;p>-issue: Issue a new certificate&lt;/p>
&lt;p>-d (-domain) : Specifies a domain, used to issue, renew or revoke, etc.&lt;/p>
&lt;p>-w (-webroot) : Specifies the web root folder for web root mode. This is the DocumentRoot where your site is hosted and it is necessary to verify it by Let&amp;rsquo;s Encrypt.&lt;/p>
&lt;h3 id="step-3-install-ssl-certificate-on-cloud-load-balancer">Step 3: Install SSL Certificate on Cloud Load Balancer&lt;/h3>
&lt;p>So, at this moment we have our SSL Certificate, Private Key, and Intermediate CA Certificate ready to install on our Cloud Load Balancer (CLB)&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">Your cert is in /opt/acme/data/ssl-certs/example.com/example.com.cer
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Your cert key is in /opt/acme/data/ssl-certs/example.com/example.com.key
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">The intermediate CA cert is in /opt/acme/data/ssl-certs/example.com/ca.cer
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>So we should go to &lt;a href="https://login.rackspace.com" target="_blank" rel="noopener">https://login.rackspace.com&lt;/a> -&amp;gt; Rackspace Cloud -&amp;gt; Networking -&amp;gt; Cloud Load Balancers:&lt;/p>
&lt;figure id="figure-clb-01">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Rackspace Portal - Cloud Loud Balancer" srcset="
/media/posts/wordpress-lets-encrypt-ssl-certificate-load-balancer/CLB01_hu0c51bf85f3cc4b2d02a66a66d81aa589_40856_54a3e1d860e47c88df6fb2b14ba443b0.webp 400w,
/media/posts/wordpress-lets-encrypt-ssl-certificate-load-balancer/CLB01_hu0c51bf85f3cc4b2d02a66a66d81aa589_40856_f218066512ada5e455967f465b00b323.webp 760w,
/media/posts/wordpress-lets-encrypt-ssl-certificate-load-balancer/CLB01_hu0c51bf85f3cc4b2d02a66a66d81aa589_40856_1200x1200_fit_q90_h2_lanczos_3.webp 1200w"
src="https://portfolio.devcrumbs.com/media/posts/wordpress-lets-encrypt-ssl-certificate-load-balancer/CLB01_hu0c51bf85f3cc4b2d02a66a66d81aa589_40856_54a3e1d860e47c88df6fb2b14ba443b0.webp"
width="760"
height="242"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption>
Rackspace Portal - Cloud Loud Balancer
&lt;/figcaption>&lt;/figure>
&lt;p>Then, to Optional Features and Enable/Configure on &amp;ldquo;Secure Traffic SSL&amp;rdquo;&lt;/p>
&lt;figure id="figure-clb-02">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Rackspace Portal - Cloud Loud Balancer" srcset="
/media/posts/wordpress-lets-encrypt-ssl-certificate-load-balancer/CLB02_hu7ffc5949d0d179fc2236bf5a390f623a_11064_a2285930ece3ab5f674dbcdacb01b0a4.webp 400w,
/media/posts/wordpress-lets-encrypt-ssl-certificate-load-balancer/CLB02_hu7ffc5949d0d179fc2236bf5a390f623a_11064_f1299d84830e0d3fafe67ea941e04cae.webp 760w,
/media/posts/wordpress-lets-encrypt-ssl-certificate-load-balancer/CLB02_hu7ffc5949d0d179fc2236bf5a390f623a_11064_1200x1200_fit_q90_h2_lanczos_3.webp 1200w"
src="https://portfolio.devcrumbs.com/media/posts/wordpress-lets-encrypt-ssl-certificate-load-balancer/CLB02_hu7ffc5949d0d179fc2236bf5a390f623a_11064_a2285930ece3ab5f674dbcdacb01b0a4.webp"
width="732"
height="356"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption>
Rackspace Portal - Cloud Loud Balancer
&lt;/figcaption>&lt;/figure>
&lt;p>Finally, we add our SSL Certificate, Private Key, and Intermediate CA Certificate to the CLB and save the configuration:&lt;/p>
&lt;figure id="figure-clb-03">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Rackspace Portal - Cloud Loud Balancer" srcset="
/media/posts/wordpress-lets-encrypt-ssl-certificate-load-balancer/CLB03_hu67fb6ffec3d9916d394540c9ded24748_14067_5e34a2dc24277d867dd5c175629aa89a.webp 400w,
/media/posts/wordpress-lets-encrypt-ssl-certificate-load-balancer/CLB03_hu67fb6ffec3d9916d394540c9ded24748_14067_c6786992a49821398553ae41e9200fb7.webp 760w,
/media/posts/wordpress-lets-encrypt-ssl-certificate-load-balancer/CLB03_hu67fb6ffec3d9916d394540c9ded24748_14067_1200x1200_fit_q90_h2_lanczos_3.webp 1200w"
src="https://portfolio.devcrumbs.com/media/posts/wordpress-lets-encrypt-ssl-certificate-load-balancer/CLB03_hu67fb6ffec3d9916d394540c9ded24748_14067_5e34a2dc24277d867dd5c175629aa89a.webp"
width="534"
height="573"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption>
Rackspace Portal - Cloud Loud Balancer
&lt;/figcaption>&lt;/figure>
&lt;h3 id="step-4-configure-wordpress">Step 4: Configure WordPress&lt;/h3>
&lt;p>We are almost done, at this time we already have configured our SSL on the CLB to provide WordPress over HTTPS, however, WordPress is still with HTTP, so we need to reconfigure our WordPress with SSL.&lt;/p>
&lt;h4 id="database-queries">Database queries&lt;/h4>
&lt;p>First of all, we should update the links from http to https; we are going to do it directly on the database doing the following queries:&lt;/p>
&lt;div class="alert alert-warning">
&lt;div>
Change all instances of &lt;code>example.com&lt;/code> to your own. If you have the &lt;code>www&lt;/code> as part of your WordPress Address(URL) in the WordPress Settings, add the &amp;lsquo;www&amp;rsquo;.
&lt;/div>
&lt;/div>
&lt;p>Also, if you have a custom table prefix in the WordPress database, something other than the default &amp;lsquo;wp_&amp;rsquo;, then you must change all the instances of &amp;lsquo;wp_&amp;rsquo; to your own table prefix.&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Update any embedded attachments/img that use http:This one updates the src attributes that use double quotes:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sql" data-lang="sql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">UPDATE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">`&lt;/span>&lt;span class="n">wp_posts&lt;/span>&lt;span class="o">`&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">SET&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">post_content&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">REPLACE&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">post_content&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;src=\&amp;#34;http://example.com&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="err">\&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="s1">&amp;#39;src=\&amp;#34;https://example.com&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">WHERE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">post_content&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">LIKE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;%src=\&amp;#34;http://example.com%&amp;#39;&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This one takes care of any src attributes that use single quotes:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sql" data-lang="sql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">UPDATE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">`&lt;/span>&lt;span class="n">wp_posts&lt;/span>&lt;span class="o">`&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">SET&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">post_content&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">REPLACE&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">post_content&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;src=\&amp;#39;&lt;/span>&lt;span class="n">http&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">example&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">com&lt;/span>&lt;span class="s1">&amp;#39;, \
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39;&lt;/span>&lt;span class="n">src&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="err">\&lt;/span>&lt;span class="s1">&amp;#39;https://example.com&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">WHERE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">post_content&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">LIKE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;%src=\&amp;#39;&lt;/span>&lt;span class="n">http&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">example&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">com&lt;/span>&lt;span class="o">%&lt;/span>&lt;span class="s1">&amp;#39;;
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>Update any hard-coded URLs for links.This one updates the URL for href attributes that use double quotes:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sql" data-lang="sql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">UPDATE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">`&lt;/span>&lt;span class="n">wp_posts&lt;/span>&lt;span class="o">`&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">SET&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">post_content&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">REPLACE&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">post_content&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;href=\&amp;#34;http://example.com&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="err">\&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="s1">&amp;#39;href=\&amp;#34;https://example.com&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">WHERE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">post_content&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">LIKE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;%href=\&amp;#34;http://example.com%&amp;#39;&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This one updates the URL for href attributes that use single quotes:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sql" data-lang="sql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">UPDATE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">`&lt;/span>&lt;span class="n">wp_posts&lt;/span>&lt;span class="o">`&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">SET&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">post_content&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">REPLACE&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">post_content&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;href=\&amp;#39;&lt;/span>&lt;span class="n">http&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">example&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">com&lt;/span>&lt;span class="s1">&amp;#39;, \
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39;&lt;/span>&lt;span class="n">href&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="err">\&lt;/span>&lt;span class="s1">&amp;#39;https://example.com&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">WHERE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">post_content&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">LIKE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;%href=\&amp;#39;&lt;/span>&lt;span class="n">http&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">example&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">com&lt;/span>&lt;span class="o">%&lt;/span>&lt;span class="s1">&amp;#39;;
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>Update any &amp;ldquo;pinged&amp;rdquo; links:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sql" data-lang="sql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">UPDATE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">`&lt;/span>&lt;span class="n">wp_posts&lt;/span>&lt;span class="o">`&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">SET&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">pinged&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">REPLACE&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">pinged&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;http://example.com&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="err">\&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="s1">&amp;#39;https://example.com&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">WHERE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">pinged&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">LIKE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;%http://example.com%&amp;#39;&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>This step is just a confirmation step to make sure that there are no remaining http URLs for your site in the wp_posts table, except the GUID URLs.&lt;/p>
&lt;p>You must replace WP_DB_NAME, near the beginning of the query, with the name of your database.&lt;/p>
&lt;p>This will confirm that nowhere in the wp_posts table is there a remaining http URL, outside of the GUID column. This ignores URLs in the GUID column.&lt;/p>
&lt;p>This query only searches; it does not replace anything, nor make any changes. So, this is safe to run. It’s a safe and quick way to check the wp_posts table while ignoring the guid column.&lt;/p>
&lt;p>This SQL query should return an empty set. That would mean that it found no http URLs for your site. (This is all just 1 query. It’s 1 very,
very long line.)&lt;/p>
&lt;/li>
&lt;/ol>
&lt;div class="alert alert-warning">
&lt;div>
&lt;pre>&lt;code>Remember to replace WP_DB_NAME, near the beginning of the query, with the name of your database.
&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;pre>&lt;code>```sql
SELECT * FROM `WP_DB_NAME`.`wp_posts` WHERE (CONVERT(`ID` USING utf8) LIKE \
'%%http://example.com%%' OR CONVERT(`post_author` USING utf8) LIKE '%%http://example.com%%' \
OR CONVERT(`post_date` USING utf8) LIKE '%%http://example.com%%' \
OR CONVERT(`post_date_gmt` USING utf8) LIKE '%%http://example.com%%' \
OR CONVERT(`post_content` USING utf8) LIKE '%%http://example.com%%' \
OR CONVERT(`post_title` USING utf8) LIKE '%%http://example.com%%' \
OR CONVERT(`post_excerpt` USING utf8) LIKE '%%http://example.com%%' \
OR CONVERT(`post_status` USING utf8) LIKE '%%http://example.com%%' \
OR CONVERT(`comment_status` USING utf8) LIKE '%%http://example.com%%' \
OR CONVERT(`ping_status` USING utf8) LIKE '%%http://example.com%%' \
OR CONVERT(`post_password` USING utf8) LIKE '%%http://example.com%%' \
OR CONVERT(`post_name` USING utf8) LIKE '%%http://example.com%%' \
OR CONVERT(`to_ping` USING utf8) LIKE '%%http://example.com%%' \
OR CONVERT(`pinged` USING utf8) LIKE '%%http://example.com%%' \
OR CONVERT(`post_modified` USING utf8) LIKE '%%http://example.com%%' \
OR CONVERT(`post_modified_gmt` USING utf8) LIKE '%%http://example.com%%' \
OR CONVERT(`post_content_filtered` USING utf8) LIKE '%%http://example.com%%' \
OR CONVERT(`post_parent` USING utf8) LIKE '%%http://example.com%%' \
OR CONVERT(`menu_order` USING utf8) LIKE '%%http://example.com%%' \
OR CONVERT(`post_type` USING utf8) LIKE '%%http://example.com%%' \
OR CONVERT(`post_mime_type` USING utf8) LIKE '%%http://example.com%%' \
OR CONVERT(`comment_count` USING utf8) LIKE '%%http://example.com%%');
```
&lt;/code>&lt;/pre>
&lt;ol>
&lt;li>
&lt;p>Now, we move to the wp_comments table. This changes any comment author URLs that point to the http version of your site.
This is in case you&amp;rsquo;ve ever replied to a comment while your URL was pointing to http.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sql" data-lang="sql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">UPDATE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">`&lt;/span>&lt;span class="n">wp_comments&lt;/span>&lt;span class="o">`&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">SET&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">comment_author_url&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">REPLACE&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">comment_author_url&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="err">\&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="s1">&amp;#39;http://example.com&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;https://example.com&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">WHERE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">comment_author_url&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="err">\&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">LIKE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;%http://example.com%&amp;#39;&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>This updates the content of the comments on your site. If there are any links in the comments that are linking to an http URL on your site, they will be updated to https.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sql" data-lang="sql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">UPDATE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">`&lt;/span>&lt;span class="n">wp_comments&lt;/span>&lt;span class="o">`&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">SET&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">comment_content&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">REPLACE&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">comment_content&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;http://example.com&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="err">\&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="s1">&amp;#39;https://example.com&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">WHERE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">comment_content&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">LIKE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;%http://example.com%&amp;#39;&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>Now we move to the wp_postmeta table. This takes care of any custom post meta that points to the http version of your site.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sql" data-lang="sql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">UPDATE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">`&lt;/span>&lt;span class="n">wp_postmeta&lt;/span>&lt;span class="o">`&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">SET&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">`&lt;/span>&lt;span class="n">meta_value&lt;/span>&lt;span class="o">`&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">REPLACE&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">meta_value&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;http://example.com&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="err">\&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="s1">&amp;#39;https://example.com&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">WHERE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">meta_value&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">LIKE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;%http://example.com%&amp;#39;&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>Now we move to the wp_options table. Update the &lt;strong>WordPress Address (URL)&lt;/strong> and &lt;strong>Site Address (URL)&lt;/strong>.&lt;/p>
&lt;p>For the WordPress Address URL, you may have to modify example.com.
If you have WordPress installed in some other directory, then modify this according to your own WordPress URL.
For example, some people have WordPress installed in a subdirectory named &amp;ldquo;blog&amp;rdquo;, and so their WordPress Address would be &lt;a href="https://example.com/blog" target="_blank" rel="noopener">https://example.com/blog&lt;/a>.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sql" data-lang="sql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">UPDATE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">`&lt;/span>&lt;span class="n">wp_options&lt;/span>&lt;span class="o">`&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">SET&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">`&lt;/span>&lt;span class="n">option_value&lt;/span>&lt;span class="o">`&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;https://example.com&amp;#34;&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="err">\&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">WHERE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">`&lt;/span>&lt;span class="n">wp_options&lt;/span>&lt;span class="o">`&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="o">`&lt;/span>&lt;span class="n">option_name&lt;/span>&lt;span class="o">`&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;siteurl&amp;#39;&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This one will update the Site Address URL (this is the home page of your site):&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sql" data-lang="sql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">UPDATE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">`&lt;/span>&lt;span class="n">wp_options&lt;/span>&lt;span class="o">`&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">SET&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">`&lt;/span>&lt;span class="n">option_value&lt;/span>&lt;span class="o">`&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;https://example.com&amp;#34;&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="err">\&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">WHERE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">`&lt;/span>&lt;span class="n">wp_options&lt;/span>&lt;span class="o">`&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="o">`&lt;/span>&lt;span class="n">option_name&lt;/span>&lt;span class="o">`&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;home&amp;#39;&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;/ol>
&lt;h4 id="wordpress-control-panel">WordPress Control Panel&lt;/h4>
&lt;p>Besides, with run the queries directly on the database, we can update, or verify, the blog URLs, by going to Settings &amp;gt; General&lt;/p>
&lt;p>And updating your WordPress Address (URL) and Site Address (URL) address fields.&lt;/p>
&lt;figure id="figure-wp-change-url">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="WordPress - Change URL" srcset="
/media/posts/wordpress-lets-encrypt-ssl-certificate-load-balancer/WP-ChangeURL_hu6e2977f116eeda53ba50094ce74f270b_11971_cd086c622daa44e7dfc8388d6c27f831.webp 400w,
/media/posts/wordpress-lets-encrypt-ssl-certificate-load-balancer/WP-ChangeURL_hu6e2977f116eeda53ba50094ce74f270b_11971_a1cee76f695748cc9b27d52f28e41672.webp 760w,
/media/posts/wordpress-lets-encrypt-ssl-certificate-load-balancer/WP-ChangeURL_hu6e2977f116eeda53ba50094ce74f270b_11971_1200x1200_fit_q90_h2_lanczos_3.webp 1200w"
src="https://portfolio.devcrumbs.com/media/posts/wordpress-lets-encrypt-ssl-certificate-load-balancer/WP-ChangeURL_hu6e2977f116eeda53ba50094ce74f270b_11971_cd086c622daa44e7dfc8388d6c27f831.webp"
width="760"
height="262"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption>
WordPress - Change URL
&lt;/figcaption>&lt;/figure>
&lt;h4 id="wordpress-config-file">WordPress Config File&lt;/h4>
&lt;p>Finally, we should add the following line to our &lt;strong>wp_config.php&lt;/strong> file&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$_SERVER&lt;/span>&lt;span class="o">[&lt;/span>&lt;span class="s1">&amp;#39;HTTPS&amp;#39;&lt;/span>&lt;span class="o">]=&lt;/span>&lt;span class="s1">&amp;#39;on&amp;#39;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Now, you have configured WordPress with Let&amp;rsquo;s Encrypt SSL Certificate on a Load Balancer.&lt;/p></description></item><item><title>How to Update a ThemeForest Theme with the Envato WordPress Toolkit</title><link>https://portfolio.devcrumbs.com/update-themeforest-themes-envato-wordpress-toolkit/</link><pubDate>Mon, 10 Nov 2014 00:00:00 +0000</pubDate><guid>https://portfolio.devcrumbs.com/update-themeforest-themes-envato-wordpress-toolkit/</guid><description>&lt;p>I&amp;rsquo;ve purchased some themes on ThemeForest.com because they&amp;rsquo;re great. So this time I want to write about &amp;ldquo;How to Update ThemeForest Themes with the Envato WordPress Toolkit&amp;rdquo;.&lt;/p>
&lt;p>First of all, Envato WordPress Toolkit it is very similar to a WordPress plugin.
The installation it is the only difference. So I will explain how install the &amp;ldquo;plugin&amp;rdquo; and how to use in order to get the last update from your theme.&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Envato WordPress Toolkit is NOT available on WordPress Repositories, so you will to download from Github. &lt;a href="https://github.com/envato/envato-wordpress-toolkit" target="_blank" rel="noopener">https://github.com/envato/envato-wordpress-toolkit&lt;/a>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>After you download the .ZIP file, you should be able to install from the WordPress Plugin Manager. Or you could upload the &lt;strong>envato-wordpress-toolkit&lt;/strong> folder to the &lt;code>/wp-content/plugins/&lt;/code> directory.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Activate the Plugin from the WordPress Plugin Manager.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>You will need to generate an API key from your Themeforest account.&lt;/p>
&lt;ol>
&lt;li>In order to get your API key from Themeforest, you should login to themeforest.com, go to your dashboard and click on &lt;strong>My Settings&lt;/strong> The API Keys screen allows you to generate a free API key.&lt;/li>
&lt;/ol>
&lt;figure id="figure-envato-api-key">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Generate Envato API Key" srcset="
/media/posts/update-themeforest-themes-envato-wordpress-toolkit/generate-api-key_hu79f87149a8509f91806f4c36cecc87ef_48069_4eb5737a3c03bed98c53647532a3f590.webp 400w,
/media/posts/update-themeforest-themes-envato-wordpress-toolkit/generate-api-key_hu79f87149a8509f91806f4c36cecc87ef_48069_766063b7ba80e0dd8b93f3fee0009839.webp 760w,
/media/posts/update-themeforest-themes-envato-wordpress-toolkit/generate-api-key_hu79f87149a8509f91806f4c36cecc87ef_48069_1200x1200_fit_q90_h2_lanczos_3.webp 1200w"
src="https://portfolio.devcrumbs.com/media/posts/update-themeforest-themes-envato-wordpress-toolkit/generate-api-key_hu79f87149a8509f91806f4c36cecc87ef_48069_4eb5737a3c03bed98c53647532a3f590.webp"
width="585"
height="493"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption>
Generate Envato API Key
&lt;/figcaption>&lt;/figure>
&lt;/li>
&lt;li>
&lt;p>Once the API connection has been established you will see a list of themes that can be auto installed.
If you don&amp;rsquo;t see any themes and are certain you&amp;rsquo;ve done everything correct, there is a good chance the theme author has not updated their theme to be available for auto install and update.
If that&amp;rsquo;s the case, please contact the theme author and ask them to update their theme&amp;rsquo;s information.&lt;/p>
&lt;figure id="figure-envato-theme-autoupdate">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Envato Theme Autoupdate" srcset="
/media/posts/update-themeforest-themes-envato-wordpress-toolkit/theme-autoupdate_hu268c77734e5fb68b0dd1f925fae254b4_10949_23f0595c735a2755b0781d9e01fffb7e.webp 400w,
/media/posts/update-themeforest-themes-envato-wordpress-toolkit/theme-autoupdate_hu268c77734e5fb68b0dd1f925fae254b4_10949_e50aef30fc005b4250dd78e628dcf77e.webp 760w,
/media/posts/update-themeforest-themes-envato-wordpress-toolkit/theme-autoupdate_hu268c77734e5fb68b0dd1f925fae254b4_10949_1200x1200_fit_q90_h2_lanczos_3.webp 1200w"
src="https://portfolio.devcrumbs.com/media/posts/update-themeforest-themes-envato-wordpress-toolkit/theme-autoupdate_hu268c77734e5fb68b0dd1f925fae254b4_10949_23f0595c735a2755b0781d9e01fffb7e.webp"
width="543"
height="94"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption>
Envato Theme Autoupdate
&lt;/figcaption>&lt;/figure>
&lt;/li>
&lt;/ol>
&lt;p>This &amp;ldquo;plugin&amp;rdquo; very helpful to get your themes updated. I hope works for you as well as with me.&lt;/p></description></item></channel></rss>