Arch Linux -ב "Nginx Web Server" תועצמאב SSL ירושיאו תואמסיס לע הנגה תוירפס ,םיילאוטריו םיחראמ רוצ
.PhpMyadmin -ו MySQL תרשל תשרדנה תילמינימ החטבא תרדגהו (PhpMyAdmin -ו MySQL םינותנ דסמ ,Nginx) תשר יתוריש תנקתהמ לחה ,םייסיסב םירבד קר רקס' LEMP 'סקוניל כרא' לש םדוקה רמאמה
. תוחתפמו SSL ירושיא תריציו םיילאוטריו םיחראמ תלעפהב הדובעה לע לקי לש םיישומיש םיטפירקס המכ ךל וגיצי ןכו HTTPS ל HTTP -ל תוחטבואמ אל שדחמ תוינפה , סקוניל ןויכראב MariaDB לש םינותנה דסמ םע LEMP תא ןקתה .ישארה הרוצתה יצבוק ןויקינ לע רומשו שדח חראמ לכ רובע םיטושפ םיצבק רוציל לוכי התאש ןוויכמ רתוי תוליעיו תוטושפל תופסונ תורוצת לש הדובעה תא ךפוהש המ ,Nginx לש ישארה הרוצתה ץבוקב לולכ .ץבוק תוארוה אורקל הכירצ Nginx ובש URI שדחה ביתנה תא ןייצל אוה תושעל ךילעש ןושארה רבדה , י'צאפא לש טנרטניאה תרש ב ומכ ןפוא ותואב תלעופ וז השיג .ילאוטריו חראמ לש םיידיתע הרוצת יצבק וראשיי ובש ביתנה תא ףסוה" < b>} Nginx -ב םיילאוטריו םיחראמ לעפה :1 בלש
$ sudo nano /etc/nginx/nginx.conf
.האבה הרהצהה תא ףסוה תיתחתב
include /etc/nginx/sites-enabled/*.conf;
. .conf תמויסב תמייתסמו /םירתא תלעפומ/b>/etc/nginx> -ב םיאצמנש םיצבקה לכ תא אורקל הכירצ איהש Nginx -ל תרמוא וז היחנה
.םיילאוטריו םיחראמ לש הרוצתה יצבק לכ תא ןסחאמ התא הב , םינימז םירתא תארקנה ,תחא דועו םירתאב תלעפומה הירפס רוציל אוה אבה בלשה .2
$ sudo mkdir /etc/nginx/sites-available /etc/nginx/sites-enabled
. name-ip.conf םשב שדח ץבוק רוצ ןכל ,ילאוטריו חראמ םשכ תכרעמה לש IP תבותכב שמתשת וז המגוד .שדח ילאוטריו חראמ רוציל ןמזה עיגה וישכע .3
sudo nano /etc/nginx/sites-available/name-ip.conf
.אבה ןכותה תא ףסוה
## File content ## server { listen 80; server_name 192.168.1.33; access_log /var/log/nginx/192.168.1.33.access.log; error_log /var/log/nginx/192.168.1.33.error.log; root /srv/http; location / { index index.html index.htm index.php; autoindex on; autoindex_exact_size off; autoindex_localtime on; } location /phpmyadmin { rewrite ^/* /phpMyAdmin last; } location ~ \.php$ { #fastcgi_pass 127.0.0.1:9000; (depending on your php-fpm socket configuration) fastcgi_pass unix:/run/php-fpm/php-fpm.sock; fastcgi_index index.php; include fastcgi.conf; } }
.תכרעמ ביתנ /srv/http/ מ םיצבק ןכות שיגהל Nginx Virtual Host לע העיבצמש שרוש תרהצה איה ןאכ תפסונ הבושח היחנה ,ןכ ומכ .הנזאה תאיצי תחת תרש םש הרהצה איה ילאו
.תושדח תורוצת גיצהל ידכ ןומדה תא שדחמ ליעפהל זאו ,(ילמס רושיק תועצמאב) Nginx תאירקל name-ip.conf םיצבקה תרוצת תא ךופהלו /srv/http/ הירפס רוציל אוה ןורחאה בלשה .4
$ sudo mkdir /srv/http/ $ sudo ln -s /etc/nginx/sites-available/name-ip.conf /etc/nginx/sites-enabled/ $ sudo systemctl restart nginx
.הטמל ךסמה םוליצב ומכ FastCGI PHP תורוצת םג קדובש ןטק php טפירקס יתפסוה ןאכ . http:// localhost -מ הנוש טנרטניאה ןכותש תוארל ךילעו ,Arch תכרעמ לש IP -ה תבותכ לא ךלש ןפדפד
$ sudo nano /srv/http/info.php
## File content ## <?php phpinfo(); ?>
. .(ךלש םיכרצל םאתהב ותוא תונשל ידכ םניחב אלמ) .conf םויסל ילב ךלש שדחה ילאוטריווה חראמה םשל היצפואכ ריבעהלו שרוש תואשרה םע ותוא לעפה ,הלעפהל ותוא ךופה ,הטמלש ןכותה םע $HOME .הגצהכ ותוא לעפהו הלעפהל ותוא ךופה .ל"נכ תורדגה ןתוא תא לחהו אבה ןכותה םע שדח n2dissite ץבוק רוצ םיילאוטריו םיחראמ תיבשהל ידכ .7 .ביתנ ןייצל ילבמ וב שמתשה לכות זאו /usr/local/bin/ לא םיטירסתה ינש תא קתעה טושפ תכרעמה לע תובחר תודוקפכ ותוא ליחהל ךנוצרב םא ךא ,ילאוטריו חראמ לכ תיבשהל וא ליעפהל ידכ הלא םי SSL ( תחטבואמ םיעקש תבכש ) ירוביח ןיפצהל דעונש לוקוטורפ אוה HTTP תליבח ידי לע סקוניל ןויכראב קפוסמו םיירטמיסא/םיירטמיס הנפצה ישקמ תועצמאב חטבואמ ץורעב הרבעהל םינותנ תמרז .חתפמ תומשכ ילאוטריווה חראמה תומשב שומיש ךות ,/etc/nginx/ssl הירפסה ביתנב הנפצה תוחתפמ תיטמוטוא םירצויש םינטק םיטפירקס יתחתיפ ,םירבדה תא טשפל ידכ ,ןכ ומכ .םיילאוטריו םיחראמ ת .אבה ןכותה תא ףסוהו nginx_gen_ssl םשב ץבוק רוצ . .םיקיר םיילנויצפוא הרבחו המסיס תודשה תא ריאשהו (ןאכ ימשר ןיימוד םש ףסוה) ץופנ םש הדש אוה רתויב בושחהו ,ךלש רושיאה תויורשפא תא קפסו ותוא לעפה ,עוציב תואשרה ףסוה טפירקסה תריצי רח .Nginx ssl תיירפסב םינימזה תוחתפמה לכ םע םושיר גצות ,תוחתפמה תריצי תמישמ ףוסב ./usr/local/bin/ ל ותוא רבעה וא קתעה ,תכרעמ תדוקפכ שמשי הז טפירקסש ךנוצרב םא ןכ ומכ .SSL ילאוטריו חראמ name-ip גציימ הז ץבוקש ךל ריכזהל ידכ , .conf ינפל ssl תפסוה ידי לע ילאוטריווה חראמה ץבוק םש תא טעמ הנש ,ךא תרש םש תויחנהב ליעל טרופמכ ילאוטריו .הטמלש עטקב תואריהל ידכ ןכל םדוק ורצונש הלא םע תודועתו SSL יצבק יביתנ קפסו b> 443 ssl> -ל למנה תרהצה הנזאה תא הנש הז ץבוקב .תורדגה ליחהל ידכ Nginx לש ןומדה תא שדחמ לעפה זאו םירתאל םילעפומה היירפסב ץבוקל ילמס רושיק רצוי) ותוא ליעפהל ידכ ln הדוקפה תרושב וא n2ensite טפירקסב ושמתשה ץבוק .(דומעב הבחרהל החטבא גירח רשאו ףסוה ) עיפוהל הרומא החטבא תאיגש ןמיהמ אל רוביח ו ילש תכרעמב .HTTP חטבואמ רוביח תועצמאב םעפה ךא name-ip םדוקה חראמה ומכ ןכותה ותוא תא תרשמ Nginx -ב ךלש ילאוטריווה חראמה תעכ תוארל לוכי התאש יפכ .הנתשה ונלש ןכותה ביתנש ךכ תרש םש כ Arch תכרעמ לש IP -ב שמתשה ונל שיש ןוויכמ (תרחא רדגוה אל םא תכרעמה לש IP תבותכ וא loopback לש IP תבותכ תועצמאב ןכות שיגמ ללכ ךרדב localhost) .(/srv/http ) .ונלש שדחה רדגומה ילאוטריווה חראמה ביתנה ןיבל /usr/share/webapps/phpMyAdmin/ ביתנה ןיב ילמס רושיק תריצי איה טנרטניאה ךרד PhpMyAdmin ל השי . .תרשה קולב תחת אבה ןכותה תא ףסוהו ךלש םיילאוטריווה Hosts -ה יצבק תא ךורע ,ןפדפדב phpMyAdmin תזורחמ תא רהטל ךנוצרב םא .16 . .htpasswd ןפצומ ץבוק תריציל םילכ תקפסמ הניא ךא המסיס תועצמאב תונגומ תוירפס רשפאל ידכב HttpAuthBasic לודומב תשמתשמ Nginx ,י'צאפא ומכ אלש . ןפצומ b> .htaccess> ץבוק תריציל ולש םילכב שמתשהו Apache טנרטניאה תרש תא ןקתה Arch Linux -ב Nginx םע תוירפס תמסיס לע הנגה גישהל ידכ .17 . –c גתמ אלל htpasswd ב שמתשה םיפסונ םישמתשמ ףיסוהל ךנוצרב םא זאו ,ץבוק רוציל ידכ ןושארה ףסונש שמתשמה תא לעפה –c םע הדוקפ < b> htpasswd ב שמתשהו .htpass . .htpasswd טלחומה םיצבקה ביתנ לע ועיבצהו שרושה תארוה תחת ילאוטריו חראמ תרש םוסח ךותב תואבה תוארוהה תא ףסוה ויתחתמש םיצבקהו הנשמה תויקית לכ םע שגומה ביתנה /srv/http/ י .ךירושיא רובע ינעבות עיפוהל רומא תומיא שרדנ ץפוקו ףדה תא ןנער ,Nginx תוריש תא שדחמ ליעפתש רחאל .20 .Nginx םע תושגנתמה תואיצי ל ליבוהל לוכיש ןוויכמ ותוא ליעפת לא ןפוא םושבו תבשומ ראשנ אוהש אדוו ןכל ,ךלש תכרעמב י'צאפא לש טנרטניאה תרש ןקתומ ןמזה ותואבש בל םיש ךא המסיס תועצמאב תונגומה . תרש םש היחנה תחת תואבה תוארוהה תא ףסוהו ילאוטריו חראמ חראמ אל התא וכרעייו וחתפי ,HTTPS לוקוטורפל תוחטבואמ אלה HTTP -ה תושקב לכ תא תיטמוטוא ונפי םינפדפדהש הצרת םא .21 .םילק םילדבה םע Linux תוכרעמ בורב תונימז ,Nginx לש הרוצת יצבקל תועגונה הלא דחוימב ,ןבור ךא ,תרשכ תלעופה Arch Linux תכרעמ תחת ושענ הז רמאמב תוגצומה תורדגהה לכ$ sudo nano n2ensite
## File content ##
#!/bin/bash
if test -d /etc/nginx/sites-available && test -d /etc/nginx/sites-enabled ; then
echo "-----------------------------------------------"
else
mkdir /etc/nginx/sites-available
mkdir /etc/nginx/sites-enabled
fi
avail=/etc/nginx/sites-available/$1.conf
enabled=/etc/nginx/sites-enabled/
site=`ls /etc/nginx/sites-available/`
if [ "$#" != "1" ]; then
echo "Use script: n2ensite virtual_site"
echo -e "\nAvailable virtual hosts:\n$site"
exit 0
else
if test -e $avail; then
sudo ln -s $avail $enabled
else
echo -e "$avail virtual host does not exist! Please create one!\n$site"
exit 0
fi
if test -e $enabled/$1.conf; then
echo "Success!! Now restart nginx server: sudo systemctl restart nginx"
else
echo -e "Virtual host $avail does not exist!\nPlease see available virtual hosts:\n$site"
exit 0
fi
fi
$ sudo chmod +x n2ensite
$ sudo ./n2ensite your_virtual_host
$ sudo nano n2dissite
## File content ##
#!/bin/bash
avail=/etc/nginx/sites-enabled/$1.conf
enabled=/etc/nginx/sites-enabled
site=`ls /etc/nginx/sites-enabled/`
if [ "$#" != "1" ]; then
echo "Use script: n2dissite virtual_site"
echo -e "\nAvailable virtual hosts: \n$site"
exit 0
else
if test -e $avail; then
sudo rm $avail
else
echo -e "$avail virtual host does not exist! Exiting!"
exit 0
fi
if test -e $enabled/$1.conf; then
echo "Error!! Could not remove $avail virtual host!"
else
echo -e "Success! $avail has been removed!\nPlease restart Nginx: sudo systemctl restart nginx"
exit 0
fi
fi
$ sudo cp n2ensite n2dissite /usr/local/bin/
Nginx -ב םיילאוטריו םיחראמ םע SSL לעפה :2 בלש
$ sudo pacman -S openssl
$ sudo nano nginx_gen_ssl
## File content ##
#!/bin/bash
mkdir /etc/nginx/ssl
cd /etc/nginx/ssl
echo -e "Enter your virtual host FQDN: \nThis will generate the default name for Nginx SSL certificate!"
read cert
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out $cert.key
chmod 600 $cert.key
openssl req -new -key $cert.key -out $cert.csr
openssl x509 -req -days 365 -in $cert.csr -signkey $cert.key -out $cert.crt
echo -e " The certificate $cert has been generated!\nPlease link it to nginx ssl available website!"
ls -all /etc/nginx/ssl
exit 0
$ sudo chmod +x nginx_gen_ssl
$ sudo ./nginx_gen_ssl
$ sudo mv nginx_gen_ssl /usr/local/bin
$ sudo nano /etc/nginx/sites-availabe/name-ip-ssl.conf
## File content ##
server {
listen 443 ssl;
server_name 192.168.1.33;
ssl_certificate /etc/nginx/ssl/192.168.1.33.crt;
ssl_certificate_key /etc/nginx/ssl/192.168.1.33.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/192.168.1.33-ssl.access.log;
error_log /var/log/nginx/192.168.1.33-ssl.error.log;
root /srv/http;
location / {
index index.html index.htm index.php;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
}
location /phpmyadmin {
rewrite ^/* /phpMyAdmin last;
}
location ~ \.php$ {
#fastcgi_pass 127.0.0.1:9000; (depending on your php-fpm socket configuration)
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
}
$ sudo ./n2ensite name-ip-ssl
OR
$ sudo ln -s /etc/nginx/sites-available/name-ip-ssl.conf /etc/nginx/sites-enabled/
$ sudo systemctl restart nginx
ילאוטריו חראמ ךרד PhpMyAdmin -ל שג :3 בלש
$ sudo ln -s /usr/share/webapps/phpMyAdmin/ /srv/http/
location /phpmyadmin {
rewrite ^/* /phpMyAdmin last;
}
Nginx -ב המסיס תועצמאב תנגומ היירפס רשפא :4 בלש
$ sudo pacman -S apache
$ sudo mkdir /etc/nginx/passwd
$ sudo htpasswd -c /etc/nginx/passwd/.htpasswd first_user
$ sudo htpasswd /etc/nginx/passwd/.htpasswd second_user
$ sudo htpasswd /etc/nginx/passwd/.htpasswd third_user
auth_basic "Restricted Website";
auth_basic_user_file /etc/nginx/passwd/.htpasswd;
Nginx -ב HTTPS -ל HTTP תא שדחמ הנפה :5 בלש
rewrite ^ https://$server_name$request_uri? permanent;