I have installed a renewed SSL certificate on my web server running IIS7.
After installation, I applied website binding to port 443.
My application uses client certificates too, so I have changed the SSL setting to Require ‘client certificate’.
Both client and SSL server certificates are valid but still I am not able to access my application. The error I get is:
403 — Forbidden: Access is denied.
I have enabled client certificate mapping in IIS role settings also but still not getting rid of this 403 error.
I guess client certificate is not able to handshake with server certificate. Please help!
asked Jan 31, 2014 at 6:16
0
In certificate Store verified all server certificate and client cert with its authority hierarchy are available.
also cross check below settings
Application Authentication: Anonymous
Application SSL Setting: Require SSL/ Accept
ApplicationHost.config: enabled OnetoOneMapping under iisClientCertificateMappingAuthentication also added base64 certificate mapped with service accounts
Also based on my past experience we need to ensure we have SChannel registry setting as mentioned in below post.
https://support.microsoft.com/en-us/kb/2464556
answered Sep 8, 2016 at 18:41
bijaykbijayk
5563 silver badges18 bronze badges
Simplest workaround just discovered this today. In IIS for your application, Go to Edit Bindings and change your port number. 443 to 4431 or 44301. Any variation you want. In your client computer, type in the new URL using new port number and you will establish a fresh connection to application. Make sure you SSL Settings for IIS Application is set to «Accept» instead of «Require». This means you can click «Cancel» when the pop up asks you to select a certificate you can simply hit «Cancel» and still hit the site. No 403 Error.
Do not spend hours trying to mess with your certificate store, just simply change the port on IIS Server and you’ll be fine.
answered Mar 18, 2019 at 15:28
1
I am trying to implement client certificate authentication on IIS 8. I have deployed my configuration on a development machine and verified it working as expected there. However after setting up on the server, whenever I navigate to the site and am prompted for the client cert, I select it and immediately get the 403.16 error. The failed requests log gives the error code 2148204809 and message «A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider.»
I have a valid client cert and also a valid CA cert. The CA cert is installed in Trusted Root Authorities on the computer account on both the server and the client machine, and the client cert is installed in the Personal area of the Current User account on the client machine.
The client cert is signed directly by the root CA and as I said, both are valid. There are no other certs in the chain and there are no intermediate certs in the Trusted Root Authorities area.
The IIS configuration has sslFlags = SslNegotiateCert and iisClientCertificateMappingAuthentication is enabled.
The server is not configured to send a CTL and we have SendTrustedIssuerList = 0.
I cannot see why the client cert should not be trusted.
asked Oct 8, 2014 at 0:36
EricEric
8901 gold badge7 silver badges9 bronze badges
3
Windows 2012 introduced stricter certificate store validations. According to KB 2795828: Lync Server 2013 Front-End service cannot start in Windows Server 2012, the Trusted Root Certification Authorities (i.e. Root) store can only have certificates that are self-signed. If that store contains non-self-signed certificates, client certificate authentication under IIS returns with a 403.16 error code.
To solve the problem, you have to remove all non-self-signed certificates from the root store. This PowerShell command will identify non-self-signed certificates:
Get-Childitem cert:\LocalMachine\root -Recurse |
Where-Object {$_.Issuer -ne $_.Subject}
In my situation, we moved these non-self-signed certificates into the Intermediate Certification Authorities (i.e. CA) store:
Get-Childitem cert:\LocalMachine\root -Recurse |
Where-Object {$_.Issuer -ne $_.Subject} |
Move-Item -Destination Cert:\LocalMachine\CA
According to KB 2801679: SSL/TLS communication problems after you install KB 931125, you might also have too many trusted certificates.
[T]he maximum size of the trusted certificate authorities list that the Schannel security package supports is 16 kilobytes (KB). Having a large amount of Third-party Root Certication Authorities will go over the 16k limit, and you will experience TLS/SSL communication problems.
The solution in this situation is to remove any certification authority certificates you don’t trust, or to stop sending the list of trusted certifiation authorities by setting the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\@SendTrustedIssuerList
registry entry to 0 (the default, if not present, is 1).
If the issue continues to persist after the above steps, restart the machine.
answered Jan 25, 2016 at 20:42
Aaron JensenAaron Jensen
25.4k15 gold badges82 silver badges92 bronze badges
10
In my case I’d been adding the root cert into the ‘current user’ certificate store on the server and was getting the 403.16 error.
Adding my root cert to the Trusted Root Authorities store for the local machine resolved the issue.
Follow the steps below on the server running IIS.
For Windows Server 2008 R2:
- Right click on the certificate file and select ‘Install Certificate’. Click next.
- Select ‘Place all certificates in the following store’ and click ‘Browse…’
- Check ‘Show physical stores’
- Expand ‘Trusted Root Certification Authorities’ and select ‘Local Computer’. Click OK.
- Click Next/Click Finish.
For Windows Server 2012 R2:
- Right click on the certificate file and select ‘Install
Certificate’. - Select ‘Local Machine’. Click Next.
- Select ‘Place all certificates in the following store’ and click ‘Browse…’
- Select ‘Trusted Root Certification Authorities’. Click OK.
- Click Next/Click Finish.
For Windows 7:
- Start -> Run -> mmc.exe
- File -> ‘Add or Remove Snap-ins’. Select ‘Certificates’, click ‘Add >’ and select ‘Computer account’ and then ‘Local computer’. Click Finish/OK
- Expand Certificates (Local Computer) -> Trusted Root Certification Authorities -> Certificates. Right click on Certificates and select All Tasks -> Import.
- Select the certificate file and click next.
- Select ‘Place all certificates in the following store’ and click ‘Browse…’
- Check ‘Show physical stores’
- Expand ‘Trusted Root Certification Authorities’ and select ‘Local Computer’. Click OK.
- Click Next/Click Finish.
answered Oct 1, 2015 at 15:26
PSTPST
1311 silver badge5 bronze badges
2
I got this error in IIS Express:
HTTP Error 403.16 — Forbidden
Your client certificate is either not trusted or is invalid.
Looking at the TraceLogFiles
I saw the following error:
<RenderingInfo Culture="en-US">
<Opcode>MODULE_SET_RESPONSE_ERROR_STATUS</Opcode>
<Keywords>
<Keyword>RequestNotifications</Keyword>
</Keywords>
<freb:Description Data="Notification">BEGIN_REQUEST</freb:Description>
<freb:Description Data="ErrorCode">A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider.
(0x800b0109)</freb:Description>
</RenderingInfo>
Turned out when I installed Razer Synapse
the installation also put a certificate for chromasdk.io
in Trusted Root Certification Authorities under Computer Account -> Local computer. I removed this and then everything worked.
answered Feb 2, 2018 at 9:28
OgglasOgglas
62.5k37 gold badges334 silver badges420 bronze badges
Just sharing my experience with Windows 2019 server and IISExpress in combination with a self-signed certificate. I couldn’t get it working with editing the registry and in the end I didn’t need to.
The following three steps got me there:
-
Generate a root certificate for the localmachine cert store with powershell:
$cert = New-SelfSignedCertificate -Type Custom -KeySpec Signature -Subject "CN=TestRootCert" -KeyExportPolicy Exportable -HashAlgorithm sha256 -KeyLength 2048 -CertStoreLocation "Cert:\LocalMachine\My" -KeyUsageProperty Sign -KeyUsage CertSign
-
Generate a client certificate for the localuser cert store, based on the root cert with powershell:
New-SelfSignedCertificate -Type Custom -Subject "CN=TestChildCert" -Signer $cert -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.2","2.5.29.17={text}upn=test@local") -KeyUsage DigitalSignature -KeyAlgorithm RSA -KeyLength 2048 -CertStoreLocation "Cert:\CurrentUser\My"
-
Move the root cert from Personal\Certificates to Trusted Root Certification\Certificates
After this I could select the TestChildCert and it was accepted just fine.
answered Aug 25, 2020 at 13:59
Все мы, путешествуя по просторам интернета, натыкаемся на различные ошибки при загрузке сайтов. Одна из них, кстати, достаточно часто встречается – я говорю об ошибке сервера 403 Forbidden Error. Сегодня я рассмотрю причины ее возникновения и способы устранения со стороны владельца сайта и его пользователя.
Что означает ошибка 403 и почему она появляется
Ошибка сервера 403 Forbidden означает ограничение или отсутствие доступа к материалу на странице, которую вы пытаетесь загрузить. Причин ее появления может быть несколько, и вот некоторые из них:
- Формат индексного файла неверен.
- Некорректно выставленные права на папку/файл.
- Файлы были загружены в неправильную папку.
Ошибка на стороне пользователя
Обычно ошибка 403 на стороне пользователя указывает на:
-
Ограничения доступа. Веб-сервер может быть настроен для запрета доступа к определенным файлам и директориям. Если пользователь пытается получить доступ к таким ресурсам, сервер отправляет код 403.
-
Аутентификацию. Некоторые веб-страницы требуют аутентификации для доступа. Если пользователь не предоставляет правильные учетные данные, например, логин и пароль, сервер может отправить ошибку.
-
IP-ограничения. Веб-сервер может быть настроен для ограничения доступа к определенным IP-адресам или диапазонам IP-адресов.
-
Расширение файла. На сервере могут быть настроены правила, запрещающие доступ к определенным типам файлов или расширениям.
-
Блокировку брандмауэром или антивирусом. Некоторые брандмауэры или антивирусные программы могут блокировать доступ к определенным сайтам или ресурсам.
Ошибка на стороне владельца сайта
Ошибка 403 может также возникать из-за различных причин со стороны администратора:
-
Ошибка в файле index. Этот документ указывает на главную страницу сайта, название и формат которого должны быть определены правильно. В зависимости от выбранной CMS, они могут отличаться. Так, например, в WordPress корректные наименования – index.html, index.htm или index.php. Вместе с этим важно убедиться, что файл находится в корневой папке домена или поддомена, иначе это также может сказаться на ошибке 403.
-
Расположение файлов сайта. Часто бывает такое, что расположение файлов влияет на появление ошибки 403. Важно, чтобы все находилось на своих местах, которые регламентируются CMS и хостингом.
-
Права доступа. Файловая система имеет 7-балльную систему доступа из трех цифр, где 1 – это права владельца, 2 – группа, 3 – пользователь. Если у посетителя сайта будут ограничены права доступа, то он увидит ошибку 403. Как правило, для папок задается значение 755, для файлов – 644.
-
Проблемы с плагинами. С такой проблемой часто встречаются владельцы CMS WordPress из-за устаревшего ПО или некорректной работы кода расширений. Чтобы убедиться, действительно ли ошибка связана с такой неполадкой, отключите все плагины. Сделать это можно через раздел wp-content – найдите там папку plugins и переименуйте ее на любое другое имя. Если проблема исчезнет, то виной этому один из плагинов.
-
Ошибка в файле .htaccess. Если вы используете Apache Web Server, то попробуйте изменить название файла .htaccess. Такое действие поможет понять, есть ли вина файла в ошибке или нет. Если же код 403 появляется из-за .htaccess, то обратите внимание на директивы: deny, allow, require, redirect, RewriteRule – в них может быть допущена ошибка.
-
Тариф хостинга подобран неправильно. Такое случается, когда вы используете современные технологии, а хостинг их не поддерживает. Например, тариф рассчитан только на PHP 7.4, а вы работаете на PHP 8.0. В таком случае вполне может появляться ошибка 403.
Ограничения на стороне хостинга или провайдера
В некоторых случаях ошибка 403 появляется не по вине пользователя или владельца сайта, а по причине каких-то ограничений со стороны хостинга или провайдера. Рассмотрим наиболее встречаемые:
-
Прекращение работы сайта. Сайт может быть заблокирован хостингом, например, если не оплачен тарифный план или были нарушены правила площадки. Также проблемы могут быть связаны с действиями Роскомнадзора.
-
Устаревший кэш DNS. Обычно это связано с переездом сайта на другой адрес. В таких случаях есть вероятность, что используются устаревшие данные DNS-серверов. Как правило, ошибка уходит сама в течение одних-двух суток.
-
Проблема на стороне провайдера. Если ни одна из вышеперечисленных причин вам не подходит, обратитесь к провайдеру – возможно что-то «сломалось» на его стороне.
Другие причины ошибки 403
Помимо распространенных причин, о которых я уже упоминала выше, существуют и другие, более редкие. Вот несколько из них:
-
Ограничения по времени доступа. Администратор может настроить ограничения по времени доступа к определенным ресурсам. Например, доступ к некоторым страницам или функциональности может быть отключен в конкретное время дня.
-
Блокировка по стране или региону. В некоторых случаях владельцы веб-ресурсов могут настроить блокировку доступа к сайту из определенных стран или регионов. Это может быть сделано по причинам безопасности или для соблюдения правовых ограничений.
-
Превышение лимитов использования. Иногда веб-сервисы или API могут иметь ограничения на количество запросов или использование ресурсов. Если пользователь превышает эти лимиты, сервер может отправить ошибку 403 в ответ на последующие запросы.
-
Ограничения на основе идентификатора пользователя. Веб-сайты, особенно те, которые предоставляют персонализированный контент, могут ограничивать доступ к определенным ресурсам на основе идентификатора пользователя. Например, когда посетитель сайта не является членом определенной группы.
-
Проверка ботов и сканеров. Администраторы могут настроить системы защиты сайта для обнаружения и блокировки автоматических сканеров, вредоносных ботов или спам-роботов. Если сервер обнаруживает подозрительную активность, он может отправлять код 403 в ответ на запросы от таких источников.
Коды ошибок подстатуса для IIS
Основной список кодов ошибок, которые возвращаются службами Microsoft Internet Information Services:
- 403.1 – доступ к выполнению запрещен;
- 403.2 – ставит запрет на чтение;
- 403.3 – запрещает делать запись;
- 403.4 – указывает на то, что нужно использовать SSL-сертификат;
- 403.5 – указывает на то, что нужно использовать SSL-сертификат 128 бит;
- 403.6 – говорит о том, что IP-адрес отклонен;
- 403.7 – требует сертификат;
- 403.8 – говорит о том, что доступ к сайту запрещен;
- 403.9 – указывает на слишком высокий трафик;
- 403.10 – неверная конфигурация;
- 403.11 – говорит о том, что изменен пароль;
- 403.12 – Mapper отказал в доступе;
- 403.13 – означает, что сертификат отозван;
- 403.14 – говорит о том, что листинг каталога отклонен;
- 403.15 – слишком большое число клиентских лицензий;
- 403.16 – указывает на некорректный сертификат;
- 403.17 – срок действия сертификата истек;
- 403.18 – не получается выполнить запрос;
- 403.19 – нельзя выполнить CGI;
- 403.20 – указывает на ошибку входа в систему;
- 403.21 – доступ к источнику запрещен;
- 403.22 – бесконечная глубина запрещена;
- 403.502 – указывает на большое число запросов с одного IP-адреса;
- 403.503 – есть ограничения по IP.
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Подписаться
Исправление ошибки сервера 403 Forbidden
Чтобы исправить ошибку сервера 403 Forbidden, обязательно нужен доступ к панели управления вашего хостинга. Все описанные ниже шаги применимы к любой CMS, но примеры будут показаны на основе WordPress.
Проверка индексного файла
Сначала я проверю, правильно ли назван индексный файл. Все символы в его имени должны быть в нижнем регистре. Если хотя бы один символ набран заглавной буквой, возникнет ошибка 403 Forbidden. Но это больше относится к ОС Linux, которой небезразличен регистр.
Еще не стоит забывать, что индексный файл может быть нескольких форматов, в зависимости от конфигураций сайта: index.html, index.htm, или index.php. Кроме того, он должен храниться в папке public_html вашего сайта. Файл может затеряться в другой директории только в том случае, если вы переносили свой сайт.
Любое изменение в папке или файле фиксируется. Чтобы узнать, не стала ли ошибка итогом деятельности злоумышленников, просто проверьте графу «Дата изменения».
Настройка прав доступа
Ошибка 403 Forbidden появляется еще тогда, когда для папки, в которой расположен искомый файл, неправильно установлены права доступа. На все директории должны быть установлены права на владельца. Но есть другие две категории:
- группы пользователей, в числе которых есть и владелец;
- остальные, которые заходят на ваш сайт.
На директории можно устанавливать право на чтение, запись и исполнение.
Так, по умолчанию на все папки должно быть право исполнения для владельца. Изменить их можно через панель управления TimeWeb. Для начала я зайду в раздел «Файловый менеджер», перейду к нужной папке и выделю ее. Далее жму на пункт меню «Файл», «Права доступа».
Откроется новое окно, где я могу отрегулировать права как для владельца, так и для всех остальных.
Отключение плагинов WordPress
Если даже после всех вышеперечисленных действий ошибка не исчезла, вполне допустимо, что влияние на работу сайта оказано со стороны некоторых плагинов WordPress. Быть может они повреждены или несовместимы с конфигурациями вашего сайта.
Для решения подобной проблемы необходимо просто отключить их. Но сначала надо найти папку с плагинами. Открываю папку своего сайта, перехожу в раздел «wp-content» и нахожу в нем директорию «plugins». Переименовываю папку – выделяю ее, жму на меню «Файл» и выбираю соответствующий пункт. Название можно дать вот такое: «plugins-disable». Данное действие отключит все установленные плагины.
Теперь нужно попробовать вновь загрузить страницу. Если проблема исчезла, значит, какой-то конкретный плагин отвечает за появление ошибки с кодом 403.
Но что делать, если у вас плагин не один, а какой из них влияет на работу сайта – неизвестно? Тогда можно вернуть все как было и провести подобные действия с папками для определенных плагинов. Таким образом, они будут отключаться по отдельности. И при этом каждый раз надо перезагружать страницу и смотреть, как работает сайт. Как только «виновник торжества» найден, следует переустановить его, удалить или найти альтернативу.
Читайте также
Как решить проблему, если вы – пользователь
Выше я рассмотрела способы устранения ошибки 403 Forbidden для владельцев сайта. Теперь же разберу методы исправления в случаях с пользователем.
- Сначала надо убедиться, что проблема заключается именно в вашем устройстве. Внимательно проверьте, правильно ли вы ввели URL сайта. Может, в нем есть лишние символы. Или, наоборот, какие-то символы отсутствуют.
- Попробуйте загрузить страницу с другого устройства. Если на нем все будет нормально, значит, проблема кроется именно в используемом вами девайсе. Если нет – надо перейти к последнему шагу.
- Еще хороший вариант – немного подождать и обновить страницу. Делается это либо кликом по иконке возле адресной строки браузера, либо нажатием на комбинацию Ctrl + F5. Можно и без Ctrl, на ваше усмотрение.
- Если ничего из вышеперечисленного не помогло, надо очистить кэш и cookies. Провести такую процедуру можно через настройки браузера. Для этого необходимо открыть историю просмотров, чтобы через нее перейти к инструменту очистки. Эту же утилиту часто можно найти в настройках, в разделе «Конфиденциальность и безопасность». В новом окне нужно отметить пункты с кэшем и cookies и нажать на кнопку для старта очистки.
- Ошибка 403 Forbidden возникает и тогда, когда пользователь пытается открыть страницу, для доступа к которой сначала надо осуществить вход в систему. Если у вас есть профиль, просто войдите в него и попробуйте вновь загрузить нужную страницу.
- Если вы заходите со смартфона, попробуйте отключить функцию экономии трафика в браузере. Она находится в настройках, в мобильном Google Chrome под нее отведен отдельный раздел.
- Последний шаг – подождать. Когда ни один способ не помогает, значит, неполадки возникли именно на сайте. Возможно, его владелец уже ищет способы решения проблемы и приступает к их исполнению, но это может занять какое-то время. Пользователям остается только дождаться, когда все работы будут завершены.
Еще одна допустимая причина появления ошибки сервера 403 – доступ к сайту запрещен для определенного региона или страны, в которой вы находитесь. Бывает и такое, что сайт доступен для использования только в одной стране. Если вы используете VPN, попробуйте отключить его и перезагрузите страницу. Вдруг получится все исправить.
Если ничего из вышеперечисленного не сработало, рекомендуется обратиться к владельцу сайта. Есть вероятность, что никто не знает о возникшей проблеме, и только ваше сообщение может изменить ситуацию.
Вопрос
При использовании https соединения между клиентом и сервером происходит ошибка. В логах ошибки 403, 403.16.
Ответ
1. Убедитесь, что для сервера Indeed AM включена настройка «Принимать» для клиентских сертификатов.
2. Убедитесь, что клиентский сертификат добавлен в доверенное хранилище. Подробнее по ссылке.
3. Убедитесь, что используется валидный сертификат сервера, в противном случае необходимо установить значение «1» для параметра «IsIgnoreCertErrors» для используемого компонента.
4. В Windows 2012 и выше введена более строгая проверка хранилища сертификатов. Согласно KB 2795828: Внешняя служба Lync Server 2013 не сможет запустится если хранилище доверенных корневых центров сертификации содержать не только самозаверяющие сертификаты. Если это хранилище содержит несамозаверяющие сертификаты, то проверка подлинности сертификата клиента в IIS вернется с ошибкой 403.16. Рекомендации из статьи Microsoft решают данную проблему.
Проверить наличие несамозаверяющих можно через PS: Get-Childitem cert:\LocalMachine\root -Recurse | Where-Object {$_.Issuer -ne $_.Subject}
Запрос должен возвращать пустую строку.
5. На сервере Indeed AM добавьте в реестр по пути «HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL» значение типа DWORD с именем «ClientAuthTrustMode» и значением 2. Убедитесь что по данному пути отсутствует или имеет значение 0 ключ «SendTrustedIssuerList«, при необходимости удалите ключ или задайте значение 0. После выполнения действий необходимо выполнить перезагрузку.
6. 403 ошибка при установке роли ADFS на сервер Indeed AM
Подождите!
Не закрывайте страницу. Нейросеть пишет ответ. Он появится тут.
Этот ответ написан нейросетью.
Искуственный интеллект во многом преуспевает, но в некоторых областях может давать неточные ответы.
Если вам не понравился ответ, попробуйте задать его более развёрнуто и конкретно, используя точные параметры.
Ответ нейросети:
Ошибка с кодом 403 означает, что сервер отказывает доступ пользователю к запрашиваемому ресурсу. Это может быть вызвано несколькими причинами:
1. Пользователь не авторизован тестовым аккаунтом. Для доступа к веб-сервису может потребоваться авторизация с помощью тестового аккаунта или учетных данных. Если пользователь не прошел процесс авторизации или ввел неправильные учетные данные, то сервер может отказать доступу, что приведет к ошибке 403.
2. На компьютере установлено неправильное время. Веб-серверы часто используют проверку времени для обеспечения безопасности и предотвращения атак, таких как атаки перебора паролей. Если время на компьютере пользователя отличается от времени сервера, то сервер может отказать доступу, что приведет к ошибке 403.
3. Нет соединения с интернетом. Если у пользователя отсутствует интернет-соединение или соединение нестабильно, то он может столкнуться с ошибкой 403 при попытке открыть тестовый стенд. Это может быть вызвано недоступностью сервера или проблемами сети.
4. Не установлены сертификаты / не настроено доверие сертификатов. Веб-серверы часто используют сертификаты для обеспечения безопасного соединения. Если сертификаты не установлены на компьютере пользователя или не настроено доверие сертификатам, то сервер может отказать доступу, что приведет к ошибке 403. В этом случае может потребоваться установка или настройка сертификатов на компьютере пользователя.
⚠️Зарепортить пост!