Codeigniter OpenID ERR_SSL_PROTOCOL_ERROR

Я пытаюсь реализовать Jumbojett OpenID Аутентификацию на своем сервере Linux Centos 9. Это код моего контроллера входа (welcome.php):

public function login_sso()
{
if (!$this->session->userdata('USERNIP')) {
            $oidc = new OpenIDConnectClient(
                $this->config->item('SSO_PROVIDER_URL'),
                $this->config->item('SSO_CLIENT_ID'),
                $this->config->item('SSO_CLIENT_SECRET')
            );
            $isAuthenticate = $oidc->authenticate();
            if ($isAuthenticate) {
                $user = $this->M_welcome->get_login_complete_sso($oidc->requestUserInfo('preferred_username'));
                [$akses, $akses_lengkap, $role_id] = $this->M_welcome->get_user_access($user[0]->PEGAWAIID,  $oidc->requestUserInfo('preferred_username'), $user[0]->JENISPEGAWAIID);
                $data_session = array(
                    'USERLOGIN' => $oidc->requestUserInfo('email'),
                    'SSO_ID_TOKEN' => $oidc->getIdToken()
                );

                $this->session->set_userdata($data_session);

                redirect('user/profil/');
            }
        }
}

Это мой код htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
    # If we don't have mod_rewrite installed, all 404's
    # can be sent to index.php, and everything works as normal.
    # Submitted by: ElliotHaughin

    ErrorDocument 404 /index.php
</IfModule>

А это мой base_url (с цензурой на mysite.go.id) в config.php:

$config['base_url'] = 'https://mysite.go.id/';

когда я открываю свое веб-приложение в браузере, все происходит гладко, пока я не использую свои учетные данные пользователя для входа в систему (имя пользователя и пароль), и оно перенаправляется на страницу с надписью:

This site can’t provide a secure connection mysite.go.id sent an invalid response.
ERR_SSL_PROTOCOL_ERROR

URL-адрес этой страницы, кажется, указывает на https://mysite.go.id:80/welcome/login_sso?state=6ea6c4c6f8538538621ed21fffa8e78c&session_state=1a223a56-9dba-447e-b6ed-9d79486420c9&code=18a981c1-d5a7-4ce2-8db7-4181244e4194.1a223a56-9dba-447e-b6ed-9d79486420c9.33e0c97f-f14d-4955-b0f1-863256cacd03, я не устанавливаю порт перенаправления на 80, но похоже, что он перенаправляется на порт 80, хотя порт по умолчанию для SSL должен быть 443. Я подозреваю, что это проблема, хотя я не знаю, как это сделать. почини это. До использования аутентификации OpenID (обычный вход в систему с локальной базой данных) все работало без сбоев, у меня не было никаких связанных с этим ошибок SSL. Но когда я использую аутентификацию OpenID, я постоянно получаю эту ошибку. Помогите, пожалуйста, что не так?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
102
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Не используйте CentOS в 2024 году

Проект CentOS прекратит выпуск обновлений и выпусков CentOS Linux в период с 2021 по 2024 год. В результате пользователи CentOS Linux должны перейти на новую операционную систему, чтобы продолжать получать обновления, исправления и новые функции. Это дает возможность переоценить потребности вашей организации и перейти на платформу, которая будет поддерживать ваш бизнес сейчас и в будущем.

CentOS Stream — это постоянно поставляемый дистрибутив, который позволяет членам сообщества открытого исходного кода вносить свой вклад в Red Hat® Enterprise Linux в тандеме с разработчиками Red Hat. CentOS Stream может показаться естественным выбором для замены CentOS Linux, но он не предназначен для промышленного использования. Он задуман как платформа разработки для партнеров Red Hat и других лиц, которые хотят участвовать и сотрудничать в экосистеме Red Hat Enterprise Linux. Следовательно, запуск CentOS Stream в производственных средах представляет множество проблем по сравнению с готовыми к использованию дистрибутивами, такими как Red Hat Enterprise Linux.

Подробнее

Принято к сведению, но в настоящее время я не смогу выполнить миграцию в ближайшее время. Спасибо вам за ваши предложения.

Codeboy Newbie 20.02.2024 08:51

Каково содержание SSO_PROVIDER_URL? Я предполагаю, что это правильный провайдер SSL? Невозможно иметь SSL URI на порту: 80.

А пока попробуйте следующий код:

$oidc = new OpenIDConnectClient(
            $this->config->item('SSO_PROVIDER_URL'),
            $this->config->item('SSO_CLIENT_ID'),
            $this->config->item('SSO_CLIENT_SECRET')
        );
//$oidc->setVerifyHost(false);
//$oidc->setVerifyPeer(false);
$oidc->setHttpUpgradeInsecureRequests(false);
$oidc->authenticate();

Раскомментируйте две закомментированные строки, если третьей недостаточно.

Ответ принят как подходящий

По-видимому, это ошибка в самой библиотеке OpenID, основанная на этой ссылке , в частности в OpenIDConnectClient.php, где $_SERVER['SERVER_PORT'] автоматически добавляет порт 80 для перенаправления, если он не преобразован в целое число.

Другие вопросы по теме