This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
сервис_http [2022/09/25 20:13] val [NGINX] |
сервис_http [2023/11/14 14:03] (current) val [Управление доступом к HTTP серверу с использованием OAuth2 аутентификации] |
||
---|---|---|---|
Line 539: | Line 539: | ||
===== Поддержка протокола HTTPS ===== | ===== Поддержка протокола HTTPS ===== | ||
+ | * [[Letsencrypt Certbot]] | ||
+ | * [[https://stackoverflow.com/questions/31370454/sslcertificatechainfile-is-obsolete|SSLCertificateChainFile is now obsolete, and any intermediate certificates are supposed to be included in the server certificate file]] | ||
==== Debian/Ubuntu ==== | ==== Debian/Ubuntu ==== | ||
<code> | <code> | ||
Line 813: | Line 815: | ||
[[http://grolmsnet.de/kerbtut/firefox.html]] | [[http://grolmsnet.de/kerbtut/firefox.html]] | ||
+ | |||
+ | ==== Управление доступом к HTTP серверу с использованием OAuth2 аутентификации ==== | ||
+ | |||
+ | * [[https://github.com/zmartzone/mod_auth_openidc/wiki/GitLab-OAuth2]] | ||
+ | * [[Инструмент GitLab#Сервер OAuth2]] из GitLab | ||
+ | * [[Сервис OAuth2#Keycloak]] | ||
+ | |||
+ | * [[https://www.janua.fr/using-apache2-mod_auth_openidc-module-with-keycloak-openid-connect/|Using apache2 mod_auth_openidc module with Keycloak (OpenID Connect)]] | ||
+ | |||
+ | <code> | ||
+ | gate# apt install libapache2-mod-auth-openidc | ||
+ | </code><code> | ||
+ | # cat /etc/apache2/conf-available/serve-cgi-bin.conf | ||
+ | </code><code> | ||
+ | ... | ||
+ | <IfDefine ENABLE_USR_LIB_CGI_BIN> | ||
+ | |||
+ | # GitLab | ||
+ | OIDCSSLValidateServer Off | ||
+ | OIDCProviderMetadataURL https://server.corp13.un/.well-known/openid-configuration | ||
+ | OIDCRedirectURI http://gate.corp13.un/cgi-bin/test-cgi | ||
+ | OIDCClientID e...............................................4 #Application ID | ||
+ | OIDCClientSecret 7.................................................4 #Secret | ||
+ | OIDCCryptoPassphrase anystring | ||
+ | |||
+ | # Keycloak | ||
+ | OIDCSSLValidateServer Off | ||
+ | OIDCProviderMetadataURL https://server.corp13.un:8443/realms/corpX/.well-known/openid-configuration | ||
+ | OIDCRedirectURI http://gate.corp13.un/cgi-bin/test-cgi | ||
+ | OIDCClientID test-cgi | ||
+ | OIDCCryptoPassphrase anystring | ||
+ | ... | ||
+ | #Require all granted | ||
+ | AuthType openid-connect | ||
+ | Require valid-user | ||
+ | ... | ||
+ | </code><code> | ||
+ | # a2enmod auth_openidc | ||
+ | </code><code> | ||
+ | Проверка: http://gate.corp13.un/cgi-bin/test-cgi/ !!! Последний / обязательно !!! | ||
+ | </code> | ||
===== Протокол WebDAV ===== | ===== Протокол WebDAV ===== | ||
Line 851: | Line 894: | ||
<code> | <code> | ||
gate# apt install nginx | gate# apt install nginx | ||
+ | </code> | ||
+ | ==== Прокси "красивого" URL в приложение (пример 1) ==== | ||
+ | <code> | ||
gate# cat /etc/nginx/sites-available/user1 | gate# cat /etc/nginx/sites-available/user1 | ||
</code><code> | </code><code> | ||
Line 865: | Line 910: | ||
# service nginx configtest | # service nginx configtest | ||
+ | |||
# tail /var/log/nginx/error.log | # tail /var/log/nginx/error.log | ||
- | |||
или | или | ||
- | |||
# nginx -t -c /etc/nginx/nginx.conf | # nginx -t -c /etc/nginx/nginx.conf | ||
- | |||
# service nginx restart | # service nginx restart | ||
</code><code> | </code><code> | ||
gate.isp.un$ wget -O - -q http://server.corpX.un | gate.isp.un$ wget -O - -q http://server.corpX.un | ||
- | </code><code> | + | </code> |
+ | |||
+ | ==== Прокси с балансировкой (пример 2) ==== | ||
+ | |||
+ | <code> | ||
# cat /etc/nginx/sites-available/myapp1 | # cat /etc/nginx/sites-available/myapp1 | ||
</code><code> | </code><code> | ||
Line 889: | Line 936: | ||
location / { | location / { | ||
proxy_pass http://myapp1; | proxy_pass http://myapp1; | ||
+ | |||
+ | # proxy_set_header Host $host; | ||
+ | # proxy_set_header X-Forwarded-For $remote_addr; | ||
+ | |||
} | } | ||
} | } | ||
</code><code> | </code><code> | ||
# ln -s /etc/nginx/sites-available/myapp1 /etc/nginx/sites-enabled/myapp1 | # ln -s /etc/nginx/sites-available/myapp1 /etc/nginx/sites-enabled/myapp1 | ||
+ | </code> | ||
+ | |||
+ | ==== Прокси "красивого" URL в приложение (пример 3) ==== | ||
+ | |||
+ | <code> | ||
+ | # host mail | ||
+ | # host webd | ||
+ | # host www | ||
+ | # host autoconfig | ||
+ | # host corpX.un | ||
+ | |||
+ | ... has address 192.168.X.10 | ||
+ | |||
+ | root@server# cat /var/opt/gitlab/nginx/conf/corpX.conf | ||
</code><code> | </code><code> | ||
- | root@server# cat /var/opt/gitlab/nginx/conf/my.conf | ||
server { | server { | ||
listen 80; | listen 80; | ||
- | server_name webd.corp13.un; | + | server_name webd.corpX.un; |
location / { | location / { | ||
- | proxy_pass http://192.168.49.2:30111; | + | proxy_pass http://192.168.49.2:30111/; |
} | } | ||
} | } | ||
+ | server { | ||
+ | listen 80; | ||
+ | server_name mail.corpX.un; | ||
+ | |||
+ | location / { | ||
+ | proxy_pass http://server.corpX.un:81/mail/; | ||
+ | # proxy_pass http://gate.corpX.un:81/mail/; | ||
+ | } | ||
+ | } | ||
+ | server { | ||
+ | listen 80; | ||
+ | server_name corpX.un www.corpX.un; | ||
+ | |||
+ | location / { | ||
+ | proxy_pass http://server.corpX.un:81/; | ||
+ | } | ||
+ | } | ||
+ | # server { | ||
+ | # listen 80; | ||
+ | # server_name autoconfig.corpX.un; | ||
+ | # location / { | ||
+ | # proxy_pass http://gate.corpX.un:81/; | ||
+ | # } | ||
+ | # } | ||
</code><code> | </code><code> | ||
- | root@server# cat /var/opt/gitlab/nginx/conf/nginx.conf | + | # cat /etc/gitlab/gitlab.rb |
+ | </code><code> | ||
+ | ... | ||
+ | nginx['custom_nginx_config'] = "include /var/opt/gitlab/nginx/conf/corpX.conf;" | ||
+ | ... | ||
+ | </code> | ||
+ | * [[Инструмент GitLab#Проверка конфигурации и перезапуск]] | ||
+ | <code> | ||
+ | root@server# less /var/opt/gitlab/nginx/conf/nginx.conf | ||
</code><code> | </code><code> | ||
... | ... | ||
- | include /var/opt/gitlab/nginx/conf/my.conf; | + | include /var/opt/gitlab/nginx/conf/corpX.conf; |
} | } | ||
</code><code> | </code><code> |