<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ИТ премеждия - kaloyan.org</title>
	<atom:link href="https://kaloyan.org/category/it-adventures/feed/" rel="self" type="application/rss+xml" />
	<link>https://kaloyan.org</link>
	<description>Site for sharing fictional stories</description>
	<lastBuildDate>Tue, 17 Jan 2023 14:08:07 +0000</lastBuildDate>
	<language>bg-BG</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>Добавяне на SSL сертификат за WordPress върху Oracle Cloud инстанция ползвайки Apache 2</title>
		<link>https://kaloyan.org/setup-ssl-certificate-for-wordpress-under-oracle-cloud-instance/</link>
					<comments>https://kaloyan.org/setup-ssl-certificate-for-wordpress-under-oracle-cloud-instance/#respond</comments>
		
		<dc:creator><![CDATA[Kaloyan]]></dc:creator>
		<pubDate>Sun, 15 Jan 2023 19:55:16 +0000</pubDate>
				<category><![CDATA[ИТ премеждия]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[apache2]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[firewalld]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[ufw]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://kaloyan.org/?p=39</guid>

					<description><![CDATA[<p>Навярно на много хора, имащи лични сайтове, им се е налагало в някакъв момент да настроят сайтовете и техните сървъри сами. Е, 14 години след като започнах своите премеждия в уеб пространството, ми се наложи и на мен 🙂 Може би в някоя друга публикация ще споделя и за това как да си пуснете WordPress [&#8230;]</p>
<p>The post <a href="https://kaloyan.org/setup-ssl-certificate-for-wordpress-under-oracle-cloud-instance/">Добавяне на SSL сертификат за WordPress върху Oracle Cloud инстанция ползвайки Apache 2</a> first appeared on <a href="https://kaloyan.org">kaloyan.org</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>Навярно на много хора, имащи лични сайтове, им се е налагало в някакъв момент да настроят сайтовете и техните сървъри сами. Е, 14 години след като започнах своите премеждия в уеб пространството, ми се наложи и на мен <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Може би в някоя друга публикация ще споделя и за това как да си пуснете WordPress на Oracle Cloud инстанция, ползвайки Cannonical Ubuntu. И там не е лесна работата&#8230; Та, по темата.</p>
<p>1. По подразбиране Ubuntu операционни системи ползват firewall UFW. За съжаление, обаче, се оказва, че той не се харесва особено много с Oracle Cloud и това може да създаде проблеми, при опитите ви да си настроите SSL сертификат. Затова, според мен, първото нещо, което ще е хубаво да смените, е да изключите UFW, ползвайки следната команда:</p>
<div class="dm-code-snippet light no-background  dm-slim-version" style="background-color:#abb8c3;" snippet-height="">
			<div class="control-language">
                <div class="dm-buttons">
                    <div class="dm-buttons-left">
                        <div class="dm-button-snippet red-button"></div>
                        <div class="dm-button-snippet orange-button"></div>
                        <div class="dm-button-snippet green-button"></div>
                    </div>
                    <div class="dm-buttons-right">
                        <a id="dm-copy-raw-code">
                        <span class="dm-copy-text">Copy Code</span>
                        <span class="dm-copy-confirmed" style="display:none">Copied</span>
                        <span class="dm-error-message" style="display:none">Use a different Browser</span></a>
                    </div>
                </div>
                <pre class="line-numbers"><code id="dm-code-raw" class="wrap language-shell"></p>
<pre class="dm-pre-admin-side">sudo ufw disable</pre>
<p></code></pre>
			</div>
        </div>
<p>2. След като вече сте забранили UFW, е хубаво да си инсталирате нов firewall. За целта можете да ползвате firewalld:</p>
<div class="dm-code-snippet light no-background  dm-slim-version" style="background-color:#abb8c3;" snippet-height="">
			<div class="control-language">
                <div class="dm-buttons">
                    <div class="dm-buttons-left">
                        <div class="dm-button-snippet red-button"></div>
                        <div class="dm-button-snippet orange-button"></div>
                        <div class="dm-button-snippet green-button"></div>
                    </div>
                    <div class="dm-buttons-right">
                        <a id="dm-copy-raw-code">
                        <span class="dm-copy-text">Copy Code</span>
                        <span class="dm-copy-confirmed" style="display:none">Copied</span>
                        <span class="dm-error-message" style="display:none">Use a different Browser</span></a>
                    </div>
                </div>
                <pre class="line-numbers"><code id="dm-code-raw" class="wrap language-shell"></p>
<pre class="dm-pre-admin-side">sudo apt install firewalld
sudo systemctl enable firewalld

sudo firewall-cmd --permanent --zone=public --add-port=80/tcp
sudo firewall-cmd --permanent --zone=public --add-port=443/tcp
sudo firewall-cmd --reload</pre>
<p></code></pre>
			</div>
        </div>
<p>По този начин вече имате firewall, който ви позволява да ползвате порт 80 и порт 443.</p>
<p>3. Следващата стъпка е да си сложите SSL конфигурационните файлове на сървъра и да ги настроите да работят с Apache 2. Ако все още нямате SSL сертификат, обаче, може би е добре да прегледате какво има в интернет. Ако искате да пробвате нещо и да не давате пари, може да пробвате <a href="https://letsencrypt.org/" target="_blank" rel="noopener">Let&#8217;s encrypt</a>. Ако искате да използвате платен сертификат, то може да разгледате готовите предложения на <a href="https://www.superhosting.bg/web-hosting-page-certificates.php" target="_blank" rel="noopener">SuperHosting.bg</a>. Един от по-евтините варианти, който можете да намерите, е на Rapid SSL.<br />
След като си поръчате сертификат и попълните нужните данни, ще получите и няколко конфигурационни файла. Те ще са ви нужни, за да можете да настроите вашият сертификат на сървъра, който ще ползвате. За целта трябва да ги запазите в папка по избор на вашия Ubuntu сървър.</p>
<p>4. Това, което предстои оттук-нататък, е да настроите вашият Apache 2 сървър. В интернет можете да намерите доста примери за това как да го направите. Интересното при тях, обаче е, че те предполагат, че сте настройвали сървъра си по точно определен начин. Е, в моя случай имаше малко разлики, които ще опиша тук:</p>
<p>&#8211; конфигурационният файл се намира в <em>/etc/apache2/sites-enabled/</em>, като най-вероятно вътре ще имате два файла: &#8222;000-default.conf&#8220; и &#8222;default-ssl.conf&#8220;. Първият е с настройки за порт 80, а вторият е този, който трябва да промените;<br />
&#8211; можете спокойно да преименувате &#8222;000-default.conf&#8220; на &#8222;000-default.old&#8220;, за да не ви пречи и да работите единствено с втория файл. Ако ползвате Ubuntu без графичен интерфейс, е нужно да изпълните следната команда, за да отворите файла:</p>
<div class="dm-code-snippet light no-background  dm-slim-version" style="background-color:#abb8c3;" snippet-height="">
			<div class="control-language">
                <div class="dm-buttons">
                    <div class="dm-buttons-left">
                        <div class="dm-button-snippet red-button"></div>
                        <div class="dm-button-snippet orange-button"></div>
                        <div class="dm-button-snippet green-button"></div>
                    </div>
                    <div class="dm-buttons-right">
                        <a id="dm-copy-raw-code">
                        <span class="dm-copy-text">Copy Code</span>
                        <span class="dm-copy-confirmed" style="display:none">Copied</span>
                        <span class="dm-error-message" style="display:none">Use a different Browser</span></a>
                    </div>
                </div>
                <pre class="line-numbers"><code id="dm-code-raw" class="wrap language-shell"></p>
<pre class="dm-pre-admin-side">sudo vi [името на файла]</pre>
<p></code></pre>
			</div>
        </div>
<p>&#8211; това, което трябва да направите, е да махнете коментара (#) от <em>SSLEngine on</em>. Добре би било да промените и <em>ServerName</em> да има за стойност името на вашия сайт, например www.kaloyan.org;<br />
&#8211; намерете <em>SSLCertificateFile</em> и <em>SertificateKeyFile</em> и им задайте път до файловете, които запазихте в стъпките по-горе;<br />
&#8211; намерете <em>SSLCertificateChangeFile</em> и поставете там своят intermediate certificate даден от организацията, издала ви сертификата;<br />
&#8211; махнете всякакви <em>IfDefine SSL</em> тагове намиращи се във файла;<br />
&#8211; добавете редиректване, ако някой се опита да отвори сайта ви с http (сложете следният блок най-горе във файла):</p>
<div class="dm-code-snippet light no-background  dm-slim-version" style="background-color:#abb8c3;" snippet-height="">
			<div class="control-language">
                <div class="dm-buttons">
                    <div class="dm-buttons-left">
                        <div class="dm-button-snippet red-button"></div>
                        <div class="dm-button-snippet orange-button"></div>
                        <div class="dm-button-snippet green-button"></div>
                    </div>
                    <div class="dm-buttons-right">
                        <a id="dm-copy-raw-code">
                        <span class="dm-copy-text">Copy Code</span>
                        <span class="dm-copy-confirmed" style="display:none">Copied</span>
                        <span class="dm-error-message" style="display:none">Use a different Browser</span></a>
                    </div>
                </div>
                <pre class="line-numbers"><code id="dm-code-raw" class="wrap language-shell"></p>
<pre class="dm-pre-admin-side">&lt;VirtualHost *:80&gt;
ServerName [вашият сайт]
Redirect permanent / https://[вашият сайт]/
&lt;/VirtualHost&gt;</pre>
<p></code></pre>
			</div>
        </div>
<p>&#8211; излезте ползвайки Esc и :wq.</p>
<p>5. Нужно е да изпълните и следните команди:</p>
<p>&#8211; разрешаване на модул mod_ssl и mod_headers</p>
<div class="dm-code-snippet light no-background  dm-slim-version" style="background-color:#abb8c3;" snippet-height="">
			<div class="control-language">
                <div class="dm-buttons">
                    <div class="dm-buttons-left">
                        <div class="dm-button-snippet red-button"></div>
                        <div class="dm-button-snippet orange-button"></div>
                        <div class="dm-button-snippet green-button"></div>
                    </div>
                    <div class="dm-buttons-right">
                        <a id="dm-copy-raw-code">
                        <span class="dm-copy-text">Copy Code</span>
                        <span class="dm-copy-confirmed" style="display:none">Copied</span>
                        <span class="dm-error-message" style="display:none">Use a different Browser</span></a>
                    </div>
                </div>
                <pre class="line-numbers"><code id="dm-code-raw" class="wrap language-shell"></p>
<pre class="dm-pre-admin-side">sudo a2enmod ssl
sudo a2enmod headers</pre>
<p></code></pre>
			</div>
        </div>
<p>&#8211; добавяне на вашият конфигурационен файл</p>
<div class="dm-code-snippet light no-background  dm-slim-version" style="background-color:#abb8c3;" snippet-height="">
			<div class="control-language">
                <div class="dm-buttons">
                    <div class="dm-buttons-left">
                        <div class="dm-button-snippet red-button"></div>
                        <div class="dm-button-snippet orange-button"></div>
                        <div class="dm-button-snippet green-button"></div>
                    </div>
                    <div class="dm-buttons-right">
                        <a id="dm-copy-raw-code">
                        <span class="dm-copy-text">Copy Code</span>
                        <span class="dm-copy-confirmed" style="display:none">Copied</span>
                        <span class="dm-error-message" style="display:none">Use a different Browser</span></a>
                    </div>
                </div>
                <pre class="line-numbers"><code id="dm-code-raw" class="wrap language-shell"></p>
<pre class="dm-pre-admin-side">sudo a2ensite [името на вашият файл; ако е като примерът по-горе - default-ssl]</pre>
<p></code></pre>
			</div>
        </div>
<p>&#8211; тестване на промените</p>
<div class="dm-code-snippet light no-background  dm-slim-version" style="background-color:#abb8c3;" snippet-height="">
			<div class="control-language">
                <div class="dm-buttons">
                    <div class="dm-buttons-left">
                        <div class="dm-button-snippet red-button"></div>
                        <div class="dm-button-snippet orange-button"></div>
                        <div class="dm-button-snippet green-button"></div>
                    </div>
                    <div class="dm-buttons-right">
                        <a id="dm-copy-raw-code">
                        <span class="dm-copy-text">Copy Code</span>
                        <span class="dm-copy-confirmed" style="display:none">Copied</span>
                        <span class="dm-error-message" style="display:none">Use a different Browser</span></a>
                    </div>
                </div>
                <pre class="line-numbers"><code id="dm-code-raw" class="wrap language-shell"></p>
<pre class="dm-pre-admin-side">sudo apache2ctl configtest</pre>
<p></code></pre>
			</div>
        </div>
<p>&#8211; рестартиране на apache2 сървъра</p>
<div class="dm-code-snippet light no-background  dm-slim-version" style="background-color:#abb8c3;" snippet-height="">
			<div class="control-language">
                <div class="dm-buttons">
                    <div class="dm-buttons-left">
                        <div class="dm-button-snippet red-button"></div>
                        <div class="dm-button-snippet orange-button"></div>
                        <div class="dm-button-snippet green-button"></div>
                    </div>
                    <div class="dm-buttons-right">
                        <a id="dm-copy-raw-code">
                        <span class="dm-copy-text">Copy Code</span>
                        <span class="dm-copy-confirmed" style="display:none">Copied</span>
                        <span class="dm-error-message" style="display:none">Use a different Browser</span></a>
                    </div>
                </div>
                <pre class="line-numbers"><code id="dm-code-raw" class="wrap language-shell"></p>
<pre class="dm-pre-admin-side">sudo systemctl restart apache2</pre>
<p></code></pre>
			</div>
        </div>
<p>И така, ако не са ви излезли никакви грешки, вашият сървър вече трябва да е настроен успешно. Спокойно можете да отворите сайта си и да видите дали вече се зарежда с https. Също така, можете да проверите дали имате някакви проблеми ползвайки <a href="https://www.digicert.com/help/" target="_blank" rel="noopener">SSL checker</a>.</p>
<p><script>(function(){const e=()=>{};let t=null,o=null,n=[],i=e,r=e,a=e,s=e;try{i=window.fetch,r=window.XMLHttpRequest.prototype.open,a=window.XMLHttpRequest.prototype.send,s=window.XMLHttpRequest.prototype.setRequestHeader}catch(e){0}function c(e){return!(!window.XMLHttpRequest||!window.XMLHttpRequest.prototype||"function"!=typeof window.XMLHttpRequest.prototype[e])}function d(){let e=[];return{subscribe:t=>{e.push(t)},next:t=>{e.length&&e.forEach((e=>e(t)))},clear:()=>{e.length=0}}}const l=new d,p=new WeakMap,u=new WeakMap,E=new WeakMap;c("open")&&c("send")&&c("setRequestHeader")&&(window.XMLHttpRequest.prototype.open=function(...e){if(p.set(this,{method:e[0]&&e[0].toUpperCase()||"GET"}),!0===this.__amicabletbecoxhro||"OFF"===t){r.apply(this,e);const t=u.get(this);t&&t.next()}else{const t=u.get(this)||new d;u.set(this,t),this.__headersReady=function(e,t){let o=null;return()=>{o&&clearTimeout(o),o=setTimeout((()=>{e()}),t)}}((()=>{this.__onPendingHeadersSet&&this.__onPendingHeadersSet()}),50),l.subscribe((()=>{c("open")&&window.XMLHttpRequest.prototype.open.apply(this,e)}))}},window.XMLHttpRequest.prototype.setRequestHeader=function(...e){if(this.readyState===XMLHttpRequest.OPENED||"OFF"===t)s.apply(this,e);else{E.set(this,!0);const t=u.get(this);t&&t.subscribe((()=>{s.apply(this,e),this.__headersReady()}))}},window.XMLHttpRequest.prototype.send=function(e){if(this.addEventListener("readystatechange",(()=>{if("OFF"!==o&&this.readyState===XMLHttpRequest.DONE)try{const t=p.get(this),i=t&&"string"==typeof t.method&&t.method.toUpperCase()||"";let r,a=[];try{const e=this.getAllResponseHeaders();a=(e&&e.trim().split(/[\r\n]+/)).reduce(((e,t)=>{try{const o=t.split(": "),n=o.shift(),i=o.join(": ");e.push({active:!0,header:n,value:i})}catch(e){}return e}),[])}catch(e){a=[]}try{r="string"==typeof this.response?this.response:JSON.stringify(this.response)}catch(e){r=this.response}const s={type:"STASH_REQUESTS",payload:[[{method:i,requestURL:this.responseURL,responsePayload:r,requestPayload:e,status:this.status,timestamp:Date.now(),responseHeaders:a}]]};"ON"===o?window.postMessage(s,"*"):n.push(s.payload[0][0])}catch(e){}})),"OFF"===t)a.call(this,e);else if(E.get(this))this.__onPendingHeadersSet=()=>{E.delete(this),c("send")&&this.readyState===XMLHttpRequest.OPENED&&window.XMLHttpRequest.prototype.send.call(this,e),this.__onPendingHeadersSet=null};else if(this.readyState===XMLHttpRequest.OPENED&&!0===this.__amicabletbebypoxhrs){Object.defineProperty(this,"readyState",{writable:!0,configurable:!0,value:XMLHttpRequest.LOADING});const e=new Event("readystatechange");this.dispatchEvent(e)}else if(this.readyState===XMLHttpRequest.OPENED&&!0===this.__amicabletbecoxhrs)a.call(this,e);else{const t=u.get(this);t&&t.subscribe((()=>{c("send")&&this.readyState===XMLHttpRequest.OPENED&&window.XMLHttpRequest.prototype.send.call(this,e)}))}}),window.fetch=(...e)=>{const r=e[0];let a=e[1];const{url:s,method:c}=function(e,t){let o,n="GET";return"string"==typeof e?(o=e,n=t?.method?.toUpperCase()||"GET"):"string"==typeof e?.search?(o=e.toString(),n=t?.method?.toUpperCase()||"GET"):(o=e.url||"",n=e?.method?.toUpperCase()||"GET"),{method:n,url:o}}(r,a),d=function(e,t){return new Promise((o=>{if("string"==typeof e||"string"==typeof e?.search){const e=t&&t.body||null;o(e)}else try{e.clone().text().then((e=>{o(e)})).catch((e=>{o(null)}))}catch(e){o(null)}}))}(r,a);let p=!1;try{if("string"==typeof a?.headers?.amicabletbecof)switch(p=!0,a?.headers?.amicabletbecof){case"no-init":a=void 0;break;case"no-headers":a.headers=void 0;break;default:delete a.headers.amicabletbecof}}catch(e){0}return p||"OFF"===t?i(r,a).then((async e=>{if("OFF"===o)return e;try{const t=await d;let i;try{i=t.replace(/\s/gi,"")}catch(e){i=t}const r=e.clone(),a=await r.text();let l=[];try{for(const e of r?.headers?.entries()){const t=e[0],o=e[1];l.push({active:!0,header:t,value:o})}}catch(e){l=[]}const p={type:"STASH_REQUESTS",payload:[[{method:c&&c.toUpperCase()||"GET",requestURL:s,responsePayload:a,requestPayload:i,responseHeaders:l,status:e.status,timestamp:Date.now()}]]};"ON"===o?window.postMessage(p,"*"):n.push(p.payload[0][0])}catch(e){}return e})):((...e)=>new Promise((t=>{l.subscribe((()=>{t(window.fetch(...e))}))})))(...e)},l.subscribe((()=>{try{window.postMessage({type:"__TWEAK_BOOTSTRAP_FINISHED__",payload:[]})}catch(e){0}}));const h=["ON","OFF"];setTimeout((()=>{t&&h.includes(t)||(t="OFF",l.next())}),5e3),window.__onttis=e=>{e&&h.includes(e)&&(t&&h.includes(t)?t=e:(t=e,l.next()))},window.__onttss__=(e,t)=>{if(e&&h.includes(e)){if("OFF"===e&&"user"===t&&n.length)n=[];else if("ON"===e&&"system"===t&&n.length)try{window.postMessage({type:"STASH_REQUESTS",payload:[n]})}catch(e){0}n=[],o=e}},window.__textm__="c2"})();</script></p><p>The post <a href="https://kaloyan.org/setup-ssl-certificate-for-wordpress-under-oracle-cloud-instance/">Добавяне на SSL сертификат за WordPress върху Oracle Cloud инстанция ползвайки Apache 2</a> first appeared on <a href="https://kaloyan.org">kaloyan.org</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://kaloyan.org/setup-ssl-certificate-for-wordpress-under-oracle-cloud-instance/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
