در حالت عادی یک سرور به گونهای تنظیم شده است که ارتباطات عادی HTTP را روی پورت 80 و HTTPS را روی پورت 443 ارائه دهد؛ مرورگرهای وب هم با همین پیشفرض کار میکنند و به همین دلیل اغلب اوقات آدرس وبسایتها چیزی شبیه به example.ir دیده میشود، نه example.ir:80 و نه https://example.ir:443 (در حالی که هر دو به یک آدرس اشاره دارند).
اما گاهی نیاز داریم تا از چند پورت در کنار هم استفاده کنیم و پورت HTTPS ما غیر از 443 باشد؛ در این صورت میتوانیم به صورت زیر عمل کنیم (سرور Ubuntu 22.04 LTS – آپاچی 2.4 و LetsEncrypt-CertBot):
ابتدا تنظیمات سایت در آپاچی را باز میکنیم:
1 |
sudo nano /etc/apache2/sites-enabled/000-default.conf |
حالا این بخش را به تنظیمات فعلی اضافه میکنیم:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
... <IfModule mod_ssl.c> <VirtualHost *:446> ServerName example.ir DocumentRoot /var/www/html SSLEngine on SSLCertificateFile /etc/letsencrypt/live/example.ir/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.ir/privkey.pem </VirtualHost> </IfModule> ... |
سپس تنظیمات پورتها را باز میکنیم:
1 |
sudo nano /etc/apache2/ports.conf |
پورت دلخواهمان را در آن قرار میدهیم:
1 2 3 4 5 6 7 8 9 |
Listen 80 #Our Normal Port <IfModule ssl_module> Listen 470 </IfModule> <IfModule mod_gnutls.c> Listen 470 </IfModule> |
در انتها آپاچی را ریاستارت میکنیم:
1 |
sudo service apache2 restart |