У меня есть особые потребности в прокси-сервере Nginx
new.example.com
и старое приложение, работающее на другом URL old.example.com
/ admin
на old.example.com/admin
new.example. com
Чтобы упростить задачу, у меня есть блоки @location, представляющие каждое приложение (но, возможно, это несовместимо с остальными, пожалуйста, сообщите мне)
location @newapp {
proxy_pass http://new.example.com:8080;
}
location @oldapp {
proxy_pass http://old.example.com:8080;
}
Сейчас, когда мое новое приложение находится в стадии разработки, я хотел бы, чтобы URL-адреса / admin
перенаправляли на мое старое приложение. Я нашел где-то в Интернете трюк с использованием try_files с файлом maintenance.html
location / admin {
try_files /main maintenance.html @oldapp;
}
Теперь все становится еще серьезнее, поскольку - Мое новое приложение требует предварительной отрисовки - Мое старое приложение не требует предварительной отрисовки и используется в качестве запасного варианта, когда требуются мета. Этот сервер RADIUS расположен на Raspberry Pi с Raspbian Stretch и использует FreeRADIUS 3.0 и Hostapd. Некоторые из ...
Я тестирую функции WLAN устройства, подключенного к серверу RADIUS. Этот сервер RADIUS расположен на Raspberry Pi с Raspbian Stretch и использует FreeRADIUS 3.0 и Hostapd.
Некоторые из тестовых примеров EAP-TLS проверяют, что произойдет, если используются длинные «цепочки доверия» . Под длинными цепочками доверия я имею в виду открытые ключи, которые были подписаны длинной цепочкой промежуточных сертификатов .
Теперь я столкнулся с проблемой, что в некоторых тестовых случаях FreeRADIUS возвращает конкретную ошибку в своем журнале:
SSL сообщает об ошибке 25: превышено ограничение длины пути
Один из этих тестовых случаев описан ниже:
Файлы сертификата RADIUS: cn = MyCA, O = MyOrg).
Оба эти сертификата находятся в файле, на который указывает SSLCACertificateFile директива Apache, поскольку нам необходимо аутентифицировать сертификаты клиентов, подписанные обоими центрами сертификации. Этого не происходит: доступ могут получить только браузеры с сертификатами клиентов, подписанными CA1 или CA2, в зависимости от порядка сертификатов CA в файле. Таким образом, если только клиенты из CA1 могут аутентифицироваться, после переключения порядка в SSLCACertificateFile и перезагрузки Apache только клиенты из CA2 смогут аутентифицироваться.
Если мы выполним квитирование SSL с помощью openssl s_client -connect < server>:
, мы замечаем, что только одно из отличительных имен CA отправляется в списке принятых CA, а отправляемый dn зависит от порядка, в котором сертификаты CA находятся в SSLCACertificateFile. Это имеет смысл, поскольку вычисляемый хеш Openssl для двух отличительных имен одинаков, поскольку отличительные имена не должны быть чувствительны к регистру.
Но похоже, что браузер выполняет сопоставление с учетом регистра, вместо этого, как в Apache регистрирует сертификат, установленный в браузере, не отправляется, если «объявленный CA» - это CA1, а сертификат клиента подписан CA2, и наоборот. Мы пробовали использовать Firefox в Windows и Linux, а также Internet Explorer и Chrome в Windows.
В противном случае, браузер командной строки curl не имеет этой проблемы, когда мы вызываем https URL с сертификатом клиента и ключом в формате PEM.
Если не копаться, я бы сказал, что вы не можете убедить браузеры выполнять здесь поиск без учета регистра. В случае простой веб-службы вы можете создать еще один VirtualHost, на котором распределены все клиенты (скажем, https://detect-cert.example.com ).
Это будет означать, что клиент согласовывает TLS один раз , затем выполняется перенаправление, а затем еще одно согласование TLS.
VirtualHost detect-cert.example.com:
optional_no_ca
сертификаты от браузеров SSLCACertificateFile
SSL_CLIENT_I_DN
, либо SSL_CLIENT_CERT_CHAIN_
переменную среды ca1clients.example.com
или ca2clients.example.com
VirtualHost ca1clients.example.com: VirtualHost ca2clients.example.com: Но ваше веб-приложение должно поддерживать два доменных имени одновременно (например, через заголовок убедитесь, что вам
требуются
сертификаты от браузеров
SSLCACertificateFile CA_lowercase.pem
требуется
SSLCACertificateFile CA_uppercase.pem
X-Forwarded-Host
). Он никогда не должен указывать браузеру, который вошел через ca2clients.example.com
, повторно войти через ca1clients.example.com
. Еще одна трудность заключается в том, что пользователи обмениваются ссылками между собой (например, отправляют по электронной почте ссылки на некоторый контент).