Rpm base ( Enterprise Linux ) များရဲ့ Apache web service ပေါ်တွင် self-signed SSL certificate ကို အသုံးပြု၍ HTTPS ဖွင့်ရန် အောက်ပါအဆင့်များကို တဆင်းခြင်း ပြုလုပ်နိုင်ပါတယ်။ Self-signed certificate သည် browser တွင် security warning ပြမည်ဖြစ်သော်လည်း local testing အတွက် သင့်လျော်ပါသည်။
လုပ်ဆောင် ရမည့် အဆင့်များ –
ဒီနေရာမှာ Web Service နဲ့ ပါတ်သတ်တဲ့ httpd package တွေ install တာတွေ service active ဖြစ်တဲ့ အခြေအနေတွေကျော်ထားပါတယ်။
1. Self-Signed Certificate ဖန်တီးခြင်း
openssl ကို အသုံးပြု၍ self-signed certificate နှင့် private key ဖန်တီးပါ။
sudo mkdir -p /etc/pki/tls/certs /etc/pki/tls/private
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/pki/tls/private/selfsigned.key \
-out /etc/pki/tls/certs/selfsigned.crt
- ရှင်းလင်းချက်:
-x509: Self-signed certificate ဖန်တီးရန်။-nodes: Private key ကို password မလိုအပ်အောင် ဖန်တီးရန်။-days 365: Certificate သက်တမ်း ၁ နှစ်။-newkey rsa:2048: 2048-bit RSA key ဖန်တီးရန်။-keyout: Private key သိမ်းမည့်နေရာ။-out: Certificate သိမ်းမည့်နေရာ။
အဆင့်လုပ်ဆောင်နေစဉ် အောက်ပါမေးခွန်းများကို ဖြည့်စွမ်းရန် လိုအပ်ပါလိမ့်မည် (ဥပမာ):
- Country Name: MM
- State or Province: Yangon
- Organization Name: YourOrg
- Common Name (CN): bnntechlinux.local သို့မဟုတ် server IP (ဥပမာ: 192.168.122.200)
2. Apache တွင် SSL Module ဖွင့်ခြင်း
Apache တွင် SSL အသုံးပြုရန် mod_ssl module ဖွင့်ထားရန် လိုအပ်သည်။
sudo dnf install mod_ssl
3. Apache Configuration ပြင်ဆင်ခြင်း
Apache configuration ဖိုင်တစ်ခုကို ဖန်တီးပြီး self-signed certificate ကို ထည့်သွင်းရန် အောက်ပါအဆင့်များကို လုပ်ဆောင်ပါ။
- Virtual Host ဖိုင်ဖန်တီးခြင်း:
/etc/httpd/conf.d/ssl.confဖိုင်ကို edit လုပ်ရပါမယ် ဒါမှမဟုတ် သီးသန့် configuration ဖိုင်တစ်ခု (ဥပမာ:/etc/httpd/conf.d/bnntechlinux-ssl.conf) ကို အသုံးပြုနိုင်ပါတယ်။ - root user ကို အသုံးမပြုထားရင် sudo ခံ သုံးပါ။
#vim /etc/httpd/conf.d/ssl.conf
- Virtual Host Configuration ထည့်သွင်းခြင်း:
အောက်ပါ configuration ကို ထည့်သွင်းပါ။bnntechlinux.localကို သင့် domain သို့မဟုတ် server IP( 192.168.122.200 ) ဖြင့် အစားထိုးနိုင်ပါတယ်။ - ဒီနေရာမှာ မူရင်းဖိုင်ထဲက ရှိပြီးသား Content တွေကို ရှာကာ အစားထိုးခြင်း # ကို ဖြုတ်ခြင်းများ ပြုလုပ်ရမှာဖြစ်ပါတယ်။
<VirtualHost *:443>
ServerName bnntechlinux.local
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/selfsigned.crt
SSLCertificateKeyFile /etc/pki/tls/private/selfsigned.key
<Directory /var/www/html>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
- ရှင်းလင်းချက်:
ServerName: သင့် domain သို့မဟုတ် IP။DocumentRoot: Website ဖိုင်များ သိမ်းထားသည့်နေရာ ။SSLEngine on: SSL ဖွင့်ရန်။SSLCertificateFile: Certificate ဖိုင်လမ်းကြောင်း။SSLCertificateKeyFile: Private key ဖိုင်လမ်းကြောင်း။
- Configuration စစ်ဆေးခြင်း:
Configuration တွင် syntax error မရှိကြောင်း စစ်ဆေးပါ။
sudo apachectl configtest
Output တွင် Syntax OK ပြပါက ဆက်လက်လုပ်ဆောင်နိုင်သည်။
4. Firewall
Port 443 (HTTPS) ဖွင့်ထားကြောင်း သေချာပါစေ။
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
5. Apache ပြန်လည်စတင်ခြင်း
Apache ဝန်ဆောင်မှုကို restart လုပ်ပါ။
sudo systemctl restart httpd
6. HTTP ကို HTTPS သို့ Redirect လုပ်ခြင်း (Optional)
HTTP မှ HTTPS သို့ redirect လုပ်လိုပါက /etc/httpd/conf.d/bnntechlinuxsite.conf ဖိုင်တွင် အောက်ပါ configuration ထည့်ပါ။
ဆိုလိုချင်တာက – client က browser ရဲ့ search မှာ servername ဒါမှမဟုတ် server ip ထည့်ရိုက်လိုက်တာနဲ့ https နဲ့ အလုပ်လုပ်ဖို့ပါ။ထွေထူး http:// တို့ https:// တို့ ထည့်စရာမလိုပါ။
<VirtualHost *:80>
ServerName bnntechlinux.local
Redirect permanent / https://bnntechlinux.local/
</VirtualHost>
ထို့နောက် Apache ကို ထပ်မံ restart လုပ်ပါ။
sudo systemctl restart httpd
7. Website စမ်းသပ်ခြင်း
- Browser တွင်
https://bnntechlinux.localသို့မဟုတ်https://192.168.122.200 ဖြင့် ဝင်ရောက်ကြည့်ပါ။ - Browser တွင် “Your connection is not private” သတိပေးချက်ပေါ်လာပါက “Proceed” သို့မဟုတ် “Advanced > Proceed” ကို နှိပ်ပါ။ ဤသတိပေးချက်သည် self-signed certificate အသုံးပြုထားသောကြောင့် ပေါ်ပေါက်ခြင်းဖြစ်သည်။
မှတ်ချက်
- Browser Warning: Self-signed certificate သည် production အတွက် မသင့်လျော်ပါ။ Production တွင် Let’s Encrypt သို့မဟုတ် အခြား CA မှ SSL certificate ကို အသုံးပြုရန် အကြံပြုပါသည်။
- File Permissions: Certificate နှင့် key ဖိုင်များသည် Apache user (
apache) ဖြင့် ဖတ်နိုင်ရမည်။ လိုအပ်ပါက permissions ပြင်ဆင်နိုင်ပါတယ်။
sudo chown apache:apache /etc/pki/tls/certs/selfsigned.crt /etc/pki/tls/private/selfsigned.key
sudo chmod 600 /etc/pki/tls/private/selfsigned.key
အဆင်ပြေကြပါစေ။
Linux basic to Linux system administration ကို လေ့လာလိုသူတိုင်းအတွက် Linux အခြေခံ ရှိစရာမလိုပဲ သင်လို့ရနိုင်မည့် သင်တန်းကို လေ့လာနိုင်ရန်။

