Попробуйте самый простой и быстрый способ 
установки OnlyOffice

работа по http и https одновременно

Вопросы по работе с Docker (установка, работа и т.д.)

работа по http и https одновременно

Сообщение Artem » Пн ноя 27, 2017 8:19 pm

Приветствую!
Подскажите как лучше всего при работе с контейнерами организовать доступность CS CE по http и https одновременно?
При этом я хочу выставить https в интернет с авторизацией по сертификатам, а в локальной сети работать по http.
Правильно ли я понимаю, что для этого нужно только отредактировать конфиг nginx, убрав редирект?
Буду благодаден за подробный ответ что и где поправить. Сейчас есть мысль просто скрестить стандартные заготовки конфигов, но я не уверен. Также думаю вынести этот конфиг за пределы контейнера и мапить его при запуске контейнера, может ли это создать конфлект с внутренними скриптами, которые работают с конфигам nginx?

И сразу попутный вопрос, возможно ли сделать воспроизведение загруженных на портал видеофайлов, чтобы они не скачивались по клику, а воспроизводились? Это нужно для wiki.
Artem
 
Сообщения: 3
Зарегистрирован: Пт ноя 24, 2017 1:12 pm

Re: работа по http и https одновременно

Сообщение Maxim » Пт дек 01, 2017 2:12 pm

День добрый!
По идее должны быть открыты 80 и 443 порты. Редиректа быть не должно.
При этом я хочу выставить https в интернет с авторизацией по сертификатам, а в локальной сети работать по http.

В таком случае я думаю надо на прокси сервере перед OO сервером настроить заголовки. Но тут вопрос возникает вопрос как обращаться к серверу по локалке? Если по домену то надо поднять внутренний DNS. По внешнему домену то не получится.
Maxim
 
Сообщения: 172
Зарегистрирован: Вт окт 11, 2016 2:29 pm

Re: работа по http и https одновременно

Сообщение Artem » Вт дек 05, 2017 11:03 am

Спасибо за совет!
Я уже опробовал вариает подсовывать измененный конфиг nginx, в котором скопированы стандартные разделы по обоим портам, все работает. Но подкладывание его во время запуска контейнера не помогает, он перезаписывается и :ro не спасает, что ожидаемо.
Про промежуточный проксирующий веб-сервер я тоже подумал, но у меня совсем нет опыта по этому вопросу, надо изучать.
Локальный dns присутствует и отдает в локальную сеть локальный ip.

По поводу воспроизведения видео я смог найти костыль в виде браузера firefox, он по умолчанию умеет сам воспроизводить прямые ссылки на видео и аудио без предварительного скачивания. Но все хотят хром, который вряд ли снизайдет до таких удобств.
Artem
 
Сообщения: 3
Зарегистрирован: Пт ноя 24, 2017 1:12 pm

Re: работа по http и https одновременно

Сообщение Artem » Пт дек 08, 2017 12:12 pm

Нужна помощь в конфигурации nginx прокси. За основу взяты стандартные конфиги. Сам nginx также в контейнере и подключен к сети onlyoffice. Имеются проблемы.
Во-первых я попытался описать логику, согласно которой, если ip клиента не входит в диапазон локалки, то включается авторизация по клиентскому сертификату.
Получаю ошибку nginx: [emerg] "ssl_verify_client" directive is not allowed here in... в строке блока if ($untrustnets) {} Как правильно переопределить ssl_verify_client?
Во-вторых, если закомментировать первую проблему, то ОО проксируется, но при открытии докуменра в редакторе получаю пустое окно с серым фоном.
К сожалению, сам не могу оценить на сколько корректен мой конфиг, впервые с nginx столкнулся.

nginx.conf
user nginx;
worker_processes 1;

error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;

events {
worker_connections 1024;
}

http {
include /etc/nginx/mime.types;
default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

access_log /var/log/nginx/access.log main;

sendfile on;
#tcp_nopush on;

keepalive_timeout 65;

#gzip on;

include /etc/nginx/conf.d/*.conf;

geo $untrustnets {
default 1;
192.168.0.0/24 0; ## trusted localnet
}

server {
listen 0.0.0.0:80;
listen [::]:80 default_server;
server_name _;
server_tokens off;

## Redirects all traffic to the HTTPS host
root /nowhere; ## root doesn't have to be a valid path since we are redirecting
rewrite ^ https://$host$request_uri? permanent;
}

server {
listen 0.0.0.0:443 ssl;
listen [::]:443 ssl default_server;
server_tokens off;
root /usr/share/nginx/html;

## Strong SSL Security
## https://raymii.org/s/tutorials/Strong_S ... nginx.html
ssl on;
ssl_certificate /certs/onlyoffice.crt;
ssl_certificate_key /certs/onlyoffice.key;
ssl_verify_client off;

if ($untrustnets) {
ssl_verify_client on;
ssl_client_certificate /certs/ca.crt;
}

ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA128:DHE-RSA-AES128-GCM-SHA384:DHE-RSA-AES128-GCM-SHA128:ECDHE-RSA-AES128-SHA384:ECDHE-RSA-AES128-SHA128:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA128:DHE-RSA-AES128-SHA128:DHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA384:AES128-GCM-SHA128:AES128-SHA128:AES128-SHA128:AES128-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_session_cache builtin:1000 shared:SSL:10m;

ssl_prefer_server_ciphers on;

add_header Strict-Transport-Security max-age=31536000;
# add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;

ssl_dhparam /certs/dhparam.pem;

location / {
proxy_pass http://onlyoffice-community-server;
proxy_read_timeout 60;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header realip $remote_addr;
}
}

}


docker run
docker run --net onlyoffice -i -t -d --restart=always --hostname onlyoffice-community-server --name onlyoffice-community-server --hostname office.domain.ru -e MYSQL_SERVER_ROOT_PASSWORD=password -e MYSQL_SERVER_DB_NAME=onlyoffice -e MYSQL_SERVER_HOST=onlyoffice-mysql-server -e MYSQL_SERVER_USER=onlyoffice_user -e MYSQL_SERVER_PASS=password -e DOCUMENT_SERVER_PORT_80_TCP_ADDR=onlyoffice-document-server -v /onlyoffice/CommunityServer/data:/var/www/onlyoffice/Data -v /onlyoffice/CommunityServer/logs:/var/log/onlyoffice -e SSL_DHPARAM_PATH=/var/www/onlyoffice/Data/certs/dhparam.pem onlyoffice/communityserver

docker run --net onlyoffice -i -t -d --restart=always --name onlyoffice-nginx-proxy -p 80:80 -p 443:443 -v /onlyoffice/nginx/nginx.conf:/etc/nginx/nginx.conf -v /onlyoffice/CommunityServer/data/certs:/certs -v /onlyoffice/nginx/logs:/var/log/nginx nginx
Artem
 
Сообщения: 3
Зарегистрирован: Пт ноя 24, 2017 1:12 pm


Вернуться в Вопросы по Docker-версии

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

cron