Internal error no matching private keys available перевод

Что делать в случае, если сертификат и приватный ключ не совпали?
https://www.lexium.ru/2014/06/nesovpadenie-sertifikata-i-privatnogo-klyucha-na-servere-apache/

В продолжение темы о наиболее часто возникающих вопросах и проблемах при генерации CSR запроса на сервере Apache, а также при установке SSL-сертификата на нем, поговорим об ошибке «x509_check_private_key:key values mismatch».
Такая ошибка говорит о том, что сертификат и приватный ключ не совпадают.
Если клиент не осведомлен о том, в какой момент генерируется приватный ключ и где он сохраняется, то, вероятно, он получит такую ошибку.

Приватный ключ (одновременно с открытым ключом) формируется в момент генерации CSR запроса на сервере.
Администратор сервера может сохранить приватный ключ в любой директории сервера, т.к. не существует папки для приватных ключей по умолчанию.
Администратору сайта необходимо обязательно запомнить, в каком месте сервера и под каким именем он сохранил закрытый ключ.

Открытый (публичный) ключ передается в центр сертификации вместе с CSR запросом, который подписывается удостоверяющим центром, т.е. на основе которого впоследствии выпускается сам SSL-сертификат.

Затем подписанный публичный ключ необходимо установить одновременно с приватным ключом таким образом, чтобы эта пара ключей совпала. Несоответствие приватного и открытого ключей приведет к ошибке «x509_check_private_key:key values mismatch».

На совпадение или несовпадение приватного и публичного ключей Вам могут помочь указать поля под названием «MODULUS» и «PUBLIC EXPONENT».
Чтобы это проверить, просто запустите следующие две команды для приватного и публичного ключей:

openssl x509 -noout -text -in [path of public key]
openssl rsa -noout -text -in [path of private key]

Если поля «MODULUS» и «PUBLIC EXPONENT» совпадают для каждого из ключей, то и сами ключи соответствуют паре.

В случае, если поля не совпадают, вероятнее всего, Вы используете неверный приватный ключ.
Решений здесь может быть несколько, вот, некоторые из них:
1. Попробовать найти верный приватный ключ и повторить попытку;
2. Сгенерировать новый CSR запрос с новым приватным ключом и отправить запрос на перевыпуск сертификата.

Как правило, самому зачастую бывает сложно справиться с поставленной задачей, особенно, если Вы осваиваете SSL-направление впервые. У Вас всегда есть возможность обратиться к представителям удостоверяющих центров за необходимой помощью.
Если у Вас существует языковой барьер или другие сложности, Вы всегда можете обратиться к официальным партнерам центров сертификации.

Одним из таких партнеров является компания ЛидерТелекм, первая в России получившая статус Symantec WSS специалист, а также первый и единственный в РФ и странах СНГ стратегически партнер Comodo.

В компании ЛидерТелеком Вы можете приобрести такие SSL-сертификаты, как:
Comodo SSL- сертификаты: http://www.instantssl.su/
UCC SAN – сертификаты: http://www.getucc.ru/
Thawte сертификаты: http://www.thawte.su/
Symantec (Verisign) сертификаты: http://symantec.leadertelecom.ru/

На чтение 9 мин. Опубликовано 15.12.2019

I have a .key file, when I do

openssl rsa -text -in file.key

Also I have a .cer file and when I do

openssl x509 -text -in file.cer

But if as pointed here I run the command like:

openssl x509 -text -inform DER -in file.cer

But that doesn’t seem to work with the key, because when I run

openssl rsa -text -inform DER -in aaa010101aaa__csd_10.key

How can I get the private key and its certificate?

Содержание

  1. 4 Answers 4
  2. No certificate matches private key
  3. RE: No certificate matches private key

4 Answers 4

It looks like you have a certificate in DER format instead of PEM . This is why it works correctly when you provide the -inform PEM command line argument (which tells openssl what input format to expect).

It’s likely that your private key is using the same encoding. It looks as if the openssl rsa command also accepts a -inform argument, so try:

A PEM encoded file is a plain-text encoding that looks something like:

While DER is a binary encoding format.

Update

Sometimes keys are distributed in PKCS#8 format (which can be either PEM or DER encoded). Try this and see what you get:

When installing a certificate on Apache web server, you might receive an error “SSL Library Error: 185073780 error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch” during restart of Apache service.

Most often, this error appears if you are using an incorrect private key along with the certificate you received from the Certificate Authority. In order for Apache to accept certificate, it should be used with the private key generated along with the CSR code submitted for the certificate activation.

You can check whether the certificate matches the private key using the following openssl commands:

openssl x509 -in /path/to/certificate.crt -noout -modulus | openssl sha1
openssl rsa -in /path/to/private.key -noout -modulus | openssl sha1

The first command is applied to the certificate file, which you received from the Certificate Authority. The second one is for the private key.

Note: Make sure you indicate the correct path to the certificate and key files. You can take either relative or absolute path.Alternatively, you can check sha256 or md5 moduli of the key and certificate pair, replacing the hash function at the end of the command.

If the outputs of the commands differ (like in the screenshot above), this means that the chosen private key does not match the certificate.

You may also check whether the certificate matches the private key using this online tool. Copy the contents of the certificate and key files to the corresponding fields in the form and click “Match”. The site will show whether or not the certificate can be installed with the provided private key.

You will need to find another private key file on the server. The command below may help you:

This command will find all files on the server with .key extensions. Make sure you are logged in as root user, otherwise you may need to add sudo in front of the command.

Once the keys are found, check their moduli using the openssl rsa command listed above to locate one that matches.
If a private key with a modulus matching the certificate cannot be found, a new CSR code will need to be generated and the certificate reissued. Refer to these instructions on how to generate a new CSR code on your server and reissue the certificate.

One more possible cause of the error might refer to Apache starting from version 2.4.8. SSLCertificateChainFile directive became obsolete with version 2.4.8, when SSLCertificateFile was extended to also load intermediate CA certificates from the server certificate file. It allows the certificate file to contain the certificate as well as intermediate certificates. It is important that the end-entity certificate issued for a domain is placed as the first certificate in this file, while intermediate certificates should be placed lower starting from the one that signs the end-entity certificate. Otherwise, you may also receive the key values mismatch error.

Classic List Threaded

No certificate matches private key

I’m trying to create an SSL certificate for a Cisco Wireless LAN controller and keep getting the error “No certificate matches private key”.

These are the steps I have taken:

1. Generate the private key and CSR with the command openssl req –newkey rsa:2048 –subj “/C=XX/O=XX/OU=XX/OU=XX/OU=XX/CN=mydevice” –keyout mykey.pem –out req.pem –nodes –config openssl.cnf

2. Sent the req.pem file in an email to the CA. The body of the email gave region, org, device serial, contact info, etc.

3. The CA returned device.P7b, intermediate.P7b, and root.P7b certificate files

4. Using a text editor I opened the received cert files and copied all of their contents into a single All-certs.pem file. They were place in the proper device/intermediate/root order with the correct delimiters around them.

5. Both All-certs.pem and mykey.pem files are located in the bin folder with the openSSL executable

6. I executed the command pkcs12 -export -in All-certs.pem -inkey mykey.pem -out All-certs.p12 –clcerts

7. I receive the error “No certificate matches private key”

I know that openSSL is seeing the files because I get “no such file or directory errors” when they are not in the bin folder

I have also verified the files are a matching set by comparing their hashes with the following commands

x509 -noout -modulus -in All-certs.pem | openssl md5

rsa -noout -modulus -in mykey.pem | openssl md5

A small team of us have been beating our heads over this for about a week so any assistance is greatly appreciated.

Brian Goulet
Wireless Communications Engineer

Enterprise Network Engineering
Harris IT Services
298 Seavy Street, Portsmouth, NH 03804

CONFIDENTIALITY NOTICE: This email and any attachments may contain material that is «Harris Proprietary Information,» confidential, privileged, and/or attorney work product for the sole use of the intended recipient. Any review, reliance, distribution, disclosure, or forwarding without expressed permission is strictly prohibited. If you are not the intended recipient, please contact sender and delete all copies without reading, printing or saving in any manner.

RE: No certificate matches private key

>From: [hidden email] On Behalf Of Goulet, Brian
>Sent: Friday, 25 January, 2013 15:53

>I’m trying to create an SSL certificate for
>and keep getting the error «No certificate matches private key».
>These are the steps I have taken:
>1. Generate the private key and CSR with the command
>openssl req -newkey rsa:2048 -subj
«/C=XX/O=XX/OU=XX/OU=XX/OU=XX/CN=mydevice»
>-keyout mykey.pem -out req.pem -nodes -config openssl.cnf
>2. Sent the req.pem file in an email to the CA. The body
>of the email gave region, org, device serial, contact info, etc.
>3. The CA returned device.P7b, intermediate.P7b, and root.P7b
>certificate files
>4. Using a text editor I opened the received cert files and
>copied all of their contents into a single All-certs.pem file.
>They were place in the proper device/intermediate/root order with
>the correct delimiters around them.

correct means dashes BEGIN/END CERTIFICATE, NOT BEGIN/END PKCS7 ?
It is confusing for the CA to give you files named *.p7b which are
actually cert and not PKCS7, a related but different structure,
when the main point of the p7b structure is that you can transmit
the whole chain in a single file/PDU; but as long as the contents
are actually the certs that’s good, and if the x509 operation below
reads without error at least one must be (a cert).

And all the delimiter lines are complete lines, right? With some
editors especially on Windows that’s easy to get wrong.

>5. Both All-certs.pem and mykey.pem files are located in
>the bin folder with the openSSL executable

>6. I executed the command pkcs12 -export -in All-certs.pem
>-inkey mykey.pem -out All-certs.p12 -clcerts

*command* pkcs12 not program openssl with *argument* pkcs12 ?
Did you (or someone) nonstandardly build the commandline aka
utility operations, in the apps directory, as «not MONOLITH»?
Above you said «the openSSL executable» as if there is only one.
Or do you have an alias or script or somesuch named pkcs12 that
actually runs program openssl with argument pkcs12?

-clcerts only affects pkcs12 import, it is ignored for export.

Personally I wouldn’t name that output file All-certs.p12,
but that’s just taste not an error.

>7. I receive the error «No certificate matches private key»

>I know that openSSL is seeing the files because I get «no such file
>or directory errors» when they are not in the bin folder

>I have also verified the files are a matching set by comparing their
>hashes with the following commands

>x509 -noout -modulus -in All-certs.pem | openssl md5
>rsa -noout -modulus -in mykey.pem | openssl md5

Again command x509 or rsa, not program openssl with that argument?

But substantively you’re right; the sequence you did should work.

I would check a little more completely:
openssl rsa -in mykey.pem -pubout -out temp1
openssl req -in req.pem -noout -pubkey -out temp2
openssl x509 -in All-certs.pem -noout -pubkey -out temp3
# or -in device.p7b which apparently isn’t truly p7b
*the whole* of temp1,2,3 should be identical.

Assuming they match, I don’t see any choice better than debugging
in EVP_PKEY_cmp, and below, to see what’s going wrong.


Offline

yamaoto

 


#1
Оставлено
:

9 октября 2014 г. 12:36:14(UTC)

yamaoto

Статус: Новичок

Группы: Участники

Зарегистрирован: 09.10.2014(UTC)
Сообщений: 3
Российская Федерация
Откуда: Якутск

При попытке получения доступа к секретному ключу происходит ошибка:
System.Security.Cryptography.CryptographicException: Неправильный параметр набора ключей.
at CryptoPro.Sharpei.CPUtils.CreateProvHandle(CspParameters parameters, Boolean randomKeyContainer)

А именно в том случае если код запущен в сервисе WCF внутри ASP.NET сайта.

Тот же код запущенный от имени пользователя с консоли работает прекрасно

Пробовал получить доступ как из хранилища сертификатов стандартными как средствами

Код:


var store = new X509Store(StoreName.My, location);
store.Open(OpenFlags.ReadOnly);
var certs = store.Certificates.Cast<X509Certificate2>().Where(crt =>crt.SerialNumber ==serialNumber.Trim()).ToList();
var cert = certs[0];
if (!CryptoHelper.IsGostCertificate(cert))
	throw new SecurityException(string.Format("Certificate '{0}' is cant' use for GOST algorithms", cert.Subject));
if (!cert.HasPrivateKey)
{
	throw new SecurityException(string.Format("Certificate '{0} has no private key", cert.Subject));
}
var gostCert = cert.PrivateKey as Gost3410CryptoServiceProvider;

так и через Gost3410CryptoServiceProvider

Код:


var parameters = new CspParameters(75, cryptoProviderName, containerName);
parameters.Flags = CspProviderFlags.UseExistingKey | CspProviderFlags.NoPrompt | CspProviderFlags.UseMachineKeyStore;
parameters.KeyPassword = password;

var provider = new Gost3410CryptoServiceProvider(parameters);

Сертификаты установлены в хранилище компьютера (проверял кучу раз)
Ключ лежит в eToken Java (так же пробовал скопировать его в хранилище реестра криптопро — тот же эффект)
Пробовал запуск пула приложений IIS от имени администратора которым заходил сам, от имени NETWORK_SERVICE, и стандартным пользователем пула

в ветке реестра нет чего-либо

Код:

HKEY_LOCAL_MACHINESOFTWARECrypto ProSettingsKeys

а в ветке

Код:

HKEY_LOCAL_MACHINESOFTWARECrypto ProSettingsUsersS-1-5-21-***-500

есть разделы KeyDevices и Random
Третий день уже разбираюсь в чем суть, голова уже не варит d'oh!

Параметры системы:

  • Приложение работает на .Net 4.0
  • Windows Server 2008R2 Standard x64
  • IIS 7.5
  • КриптоПро CSP 3.6.7777 (версия ядра СКЗИ 3.6.5365 КС1)
  • КриптоПро .Net 1.0.5320.0
  • Лицензии КриптоПро все тестовые, до декабря
  • На сервере присутствует VipNet и SecretNet


Вверх


Offline

Андрей Писарев

 


#2
Оставлено
:

9 октября 2014 г. 13:15:47(UTC)

Андрей *

Статус: Сотрудник

Группы: Участники

Зарегистрирован: 26.07.2011(UTC)
Сообщений: 11,756
Мужчина
Российская Федерация

Сказал «Спасибо»: 451 раз
Поблагодарили: 1840 раз в 1423 постах

Криптопровайдер от ОАО «Информационные Технологии и Коммуникационные Системы» — обязателен?

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW


Offline

yamaoto

 


#3
Оставлено
:

9 октября 2014 г. 17:35:43(UTC)

yamaoto

Статус: Новичок

Группы: Участники

Зарегистрирован: 09.10.2014(UTC)
Сообщений: 3
Российская Федерация
Откуда: Якутск

Автор: Андрей * Перейти к цитате

Криптопровайдер от ОАО «Информационные Технологии и Коммуникационные Системы» — обязателен?

Да, обязателен.

Проблемы могут быть из-за его несовместимости с КриптоПро?


Вверх


Offline

yamaoto

 


#4
Оставлено
:

13 октября 2014 г. 11:16:31(UTC)

yamaoto

Статус: Новичок

Группы: Участники

Зарегистрирован: 09.10.2014(UTC)
Сообщений: 3
Российская Федерация
Откуда: Якутск

Попробовали запустить на новой машине MS WS2008R2 Standard x64 en без VipNet’a SecretNet
выходит таже самая ошибка

Код:


System.Security.Cryptography.CryptographicException: Keyset does not exist
at CryptoPro.Sharpei.CPUtils.CreateProvHandle(CspParameters parameters, Boolean randomKeyContainer)
at CryptoPro.Sharpei.CPUtils.GetKeyPairHelper(CPCspAlgorithmType keyType, CspParameters parameters, Boolean randomKeyContainer, Int32 dwKeySize, SafeProvHandleCP& safeProvHandle, SafeKeyHandleCP& safeKeyHandle)
at CryptoPro.Sharpei.Gost3410CryptoServiceProvider.GetKeyPair()

ключ находится в реестре компьютера, сертификат тоже установлен в «личное» компьютера
ну и как было в предыдущей машине — этот же код запущенный вне IIS работает безупречно.

скриншот сертификатов:
скрин

проверка сертификата:
скрин2

Код:


Check container succeed        	no errors were detected
Private key container          	
  name                         	websrv3
  unique name                  	REGISTRY\websrv3
  FQCN                         	\.REGISTRYwebsrv3
  container integrity check    	succeed
Exchange key                   	available
  public key export            	succeed
  public key import            	succeed
  signing                      	succeed
  verifying                    	succeed
  exchange key agreement       	succeed
  key export                   	allowed
  algorithm                    	GOST R 34.10-2001 DH
                               	GOST R 34.10-2001, default exchange parameters
                               	GOST R 34.11-94, default parameters
  certificate in container     	match private key
  certificate in store         	My
                               	  E=websrv3, CN=websrv3, OU=websrv3, O=websrv3, L=websrv3, S=websrv3, C=RU
                               		    REGISTRY\websrv3; Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider; 75
                               	REQUEST
                               	  E=websrv3, CN=websrv3, OU=websrv3, O=websrv3, L=websrv3, C=RU
                               		    REGISTRY\websrv3; Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider; 75
  certificate name             	websrv3
  subject                      	E=websrv3, CN=websrv3, OU=websrv3, O=websrv3, L=websrv3, S=websrv3, C=RU
  issuer                       	E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
  valid from                   	Sunday, October 12, 2014 11:07:33 PM
  valid to                     	Monday, October 12, 2015 11:17:33 PM
  serial number                	1200 005E 3F83 E3E1 9085 A458 8F00 0000 005E 3F
Signature key                  	not available
  keys loading                 	succeed

Вверх


Offline

Максим Коллегин

 


#5
Оставлено
:

16 октября 2014 г. 12:45:12(UTC)

Максим Коллегин

Статус: Сотрудник

Группы: Администраторы

Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,255
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 21 раз
Поблагодарили: 660 раз в 583 постах

Дайте учетке IIS полный доступ к контейнеру ключей. Обсуждалось неоднократно.

Знания в базе знаний, поддержка в техподдержке


Вверх

WWW


Offline

Максим Коллегин

 


#6
Оставлено
:

13 июля 2015 г. 14:14:59(UTC)

Максим Коллегин

Статус: Сотрудник

Группы: Администраторы

Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,255
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 21 раз
Поблагодарили: 660 раз в 583 постах

Написал статью в FAQ

Знания в базе знаний, поддержка в техподдержке


Вверх

WWW


Offline

STP

 


#7
Оставлено
:

24 февраля 2016 г. 10:36:23(UTC)

STP

Статус: Новичок

Группы: Участники

Зарегистрирован: 24.02.2016(UTC)
Сообщений: 2
Российская Федерация
Откуда: Москва

Коллеги, у меня аналогичная проблема
При попытке доступа из webAPP получаю ошибку «Неправильный параметр набора ключей«
Всё настроено по FAQ

ПО:
Win2008R2
КП CSP 3.6.6497 КС2
Rutoken

Замечания:
Поигравшись выяснил, что есть баг в КП CSP 3.6 КС2 при назначении прав на закрытые ключи.
Так как КС2 хранит ключи в службе хранения ключей, назначаю права через оснастку Сертифиакты-ЛокальныйКомпьютер-сертификат-«управление закрытыми ключами». Но после нажатия кнопок «Применить» или «ок» слетают заданные права (при повторном открытии окна с параметрами доступа там дефолтные настройки). При этом если не закрывать оснастку Сертификаты, то webApp начинает работать как должен.

Какие могут быть мыли как это исправить?


Вверх


Offline

Максим Коллегин

 


#8
Оставлено
:

24 февраля 2016 г. 11:53:57(UTC)

Максим Коллегин

Статус: Сотрудник

Группы: Администраторы

Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,255
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 21 раз
Поблагодарили: 660 раз в 583 постах

Автор: STP Перейти к цитате

Поигравшись выяснил, что есть баг в КП CSP 3.6 КС2 при назначении прав на закрытые ключи.
Так как КС2 хранит ключи в службе хранения ключей, назначаю права через оснастку Сертифиакты-ЛокальныйКомпьютер-сертификат-«управление закрытыми ключами». Но после нажатия кнопок «Применить» или «ок» слетают заданные права (при повторном открытии окна с параметрами доступа там дефолтные настройки). При этом если не закрывать оснастку Сертификаты, то webApp начинает работать как должен.

Какие могут быть мыли как это исправить?

Какая версия CSP 3.6? В 3.9 пробовали?

Знания в базе знаний, поддержка в техподдержке


Вверх

WWW


Offline

STP

 


#9
Оставлено
:

24 февраля 2016 г. 12:31:31(UTC)

STP

Статус: Новичок

Группы: Участники

Зарегистрирован: 24.02.2016(UTC)
Сообщений: 2
Российская Федерация
Откуда: Москва

Версия КП CSP 3.6.6497 КС2 (СКЗИ 3.6.5359), данная версия нам задана в рамках большего проекта по внедрению уц.
В 3.9 не пробовали.
На предыдущей инсталляции win2003R2 стоит КП 3.6.6497 KC1, там такой проблемы нет.


Вверх


Offline

alexvg75

 


#10
Оставлено
:

14 июня 2016 г. 11:19:09(UTC)

alexvg75

Статус: Новичок

Группы: Участники

Зарегистрирован: 14.06.2016(UTC)
Сообщений: 1
Российская Федерация

Доброго дня!
Столкнулись с той же проблемой. При запуске вебсервера от локального пользователя подписи успешно добавляются, но если настроить запуск вебсервера как службы, то выдает ошибку.
При попытке следовать по шагам описанным для IIS, на этапе установки прав для доступа к закрытым ключам получаем тоже, что описал STP — права сбрасываются.
Windows 7
КриптоПРО 3.9.8001 КС1
Установлен xampp и приложение, которое должно подписывать документы. Нужен запуск приложения через службу, при этом не важно будет ли это апач или IIS.
Было бы очень замечательно, если бы кто-то смог поделился мыслями, опытом, путями обхода. Как я понимаю вся проблема в правах на закрытый ключ.
Заранее большое спасибо за любые идеи.


Вверх

Пользователи, просматривающие эту тему

Guest

Быстрый переход
 

Вы не можете создавать новые темы в этом форуме.

Вы не можете отвечать в этом форуме.

Вы не можете удалять Ваши сообщения в этом форуме.

Вы не можете редактировать Ваши сообщения в этом форуме.

Вы не можете создавать опросы в этом форуме.

Вы не можете голосовать в этом форуме.

Инструкция для пользователей и владельцев ресурса.

Что такое ошибка 500 и как её исправить

Что означает код ошибки 500

Ошибка 500 (Internal Server Error) — это внутренняя проблема сервера. Она возникает, когда браузер или другой клиент отправляет серверу запрос, а тот не может его обработать.

Одна из самых частых причин появления ошибки 500 — это неправильный синтаксис файла .htaccess. Кроме того, она порой возникает после загрузки на сервер неверных CGI‑скриптов или установки некорректных прав доступа.

То есть в ошибке 500, как и в других ответах с кодом, который начинается на цифру 5, виноваты разработчики или администраторы сервера. Но никак не пользователи.

Что делать пользователю при ошибке 500

Если вы увидели ошибку 500 на чужом сайте, есть два варианта.

Подождать

Если у вас нет доступа к этому ресурсу, вы не сможете отредактировать файл, изменить настройки или выполнить другие подобные действия. Поэтому стоит подождать, пока администратор исправит ошибку, и зайти на сайт позднее.

Сообщить администратору ресурса

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

В таком случае вы можете помочь. Попробуйте найти контактную информацию и связаться с владельцем ресурса, чтобы сообщить о проблеме. Если на самом сайте из‑за ошибки 500 вы никаких полезных данных не видите, найдите сохранённую копию страницы в поисковиках или в архиве интернета.

Что при ошибке 500 пользователю делать бессмысленно

Пример ошибки 500. Сервис GetStatusCode создан специально для тестирования различных ответов

Так как проблема связана с сервером, то нет резона что‑то предпринимать со стороны клиента. Поэтому не пытайтесь:

  • перезагружать компьютер;
  • менять браузер;
  • переустанавливать ПО;
  • перезагружать роутер.

Что делать администратору при ошибке 500

Конечно, многое зависит от специфики вашего ресурса: на каком движке он работает, на каком хостинге располагается и что вы меняли на сайте в последнее время. Но всё же универсальные рекомендации в большинстве случаев помогают избавиться от ошибки 500.

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

Проверить синтаксис файла .htaccess

Если вы используете веб‑сервер Apache, то в корне вашего сайта или во вложенных папках, скорее всего, есть файл .htaccess. В нём хранятся серверные настройки.

В большинстве случаев ресурс будет работать и без этого файла. Попробуйте переименовать .htaccess, например, в .htaccess_, а затем снова зайти на главную страницу сайта.

Если ошибка 500 исчезла, значит, дело именно в .htaccess. Проверьте синтаксис этого файла — возможно, при редактировании вы где‑то вставили лишний символ или допустили опечатку. Если есть предыдущая версия настроек, верните её и посмотрите, появляется ли ошибка 500.

Иногда помогает закомментировать строку Options в .htaccess — вставить # в самом её начале. Если это не сработало, закомментируйте и другие строки, а затем последовательно убирайте #, чтобы найти проблемное место в файле.

Если вы отредактировали .htaccess, проверьте, сохранились ли изменения. Бывает, что хостер выставляет на этот файл права, которые запрещают редактирование. В таком случае попробуйте скачать .htaccess к себе на компьютер, изменить файл в любом текстовом редакторе и залить на сайт вместо старой версии.

Посмотреть лог ошибок

Если вы недавно проводили какие‑то работы на сайте, возможно, это привело к ошибке 500. Откройте логи и посмотрите, нет ли там сообщений о проблемах. Если есть, проанализируйте их и попробуйте отменить последние корректировки.

Хостеры обычно указывают, где по умолчанию хранятся логи и как получить к ним доступ из панели управления. Эти сведения можно найти в разделах помощи или FAQ (frequently asked questions — часто задаваемые вопросы) на сайте хостинга.

Выставить права для CGI‑скриптов

Если вы используете CGI‑скрипты, то сами файлы с ними и папки, в которых они лежат, должны иметь право доступа 0755 (drwxr‑xr‑x). Такая комбинация разрешает запись в них только для владельца. Остальные пользователи могут лишь читать эти файлы и запускать их.

Если у вас установлены другие права доступа, это может приводить к ошибке 500.

Проверить содержимое CGI‑скриптов

Корректные CGI‑скрипты должны иметь окончания строк в формате Unix (n), а не в формате Windows (rn). Чтобы сохранить правильный вариант, загружать код на большинство хостингов нужно по FTP в режиме ASCII. Если вы не знаете, какие настройки использовали, перезалейте скрипты и посмотрите, не исчезла ли ошибка 500.

Также CGI‑программы могут формировать неправильные HTTP‑заголовки ответа. В этом случае вы, скорее всего, увидите ошибки в логах.

Удалить или отключить недавно установленные плагины или компоненты

Бывает, что отдельные компоненты сайта или плагины конфликтуют между собой. Это также приводит к ошибке 500 и другим проблемам на стороне сервера.

Если вы недавно устанавливали модули либо обновляли их, попробуйте отключить эти элементы в панели администрирования. Возможно, после этого на сайте возникнут другие ошибки. Но если ответ 500 больше не приходит, дело как раз в конфликте компонентов или плагинов.

Оптимизировать скрипты

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

Особенно часто скриптам не хватает ресурсов, если вы используете виртуальный хостинг. Там количество памяти жёстко ограничено, чтобы у всех аккаунтов в рамках одного физического сервера были равные возможности.

Попробуйте разбить скрипт на блоки и оценить эффективность работы каждого из них. Если в коде много внешних вызовов или потребление памяти стабильно растёт вплоть до установленного лимита, с этим точно стоит что‑то сделать.

Увеличить объём оперативной памяти сервера

Бывает, что даже после оптимизации скриптов они всё равно потребляют слишком много памяти. В этом случае придётся перейти на более дорогой пакет обслуживания на хостинге или, если предоставляется такая возможность, увеличить непосредственно выделение памяти. И не переплачивать за другие ресурсы, которые вам не нужны.

Попросить помощи

Обратитесь в службу поддержки хостера или на профильный форум. Поищите похожие ошибки на Stack Overflow — если там нет подходящей темы, создайте новую. Опишите ситуацию как можно более детально и будьте готовы пробовать различные варианты, которые вам предложат в комментариях.

Правда, порой ответов приходится ждать долго. Поэтому имеет смысл зайти в похожие темы и попросить помощи там.

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

Читайте также 💿⚙️💻

  • Что делать, если тормозит браузер
  • Как исправить ошибку CPU Fan Error при загрузке компьютера
  • Что делать, если DNS-сервер не отвечает
  • Что означает 404 Not Found и другие ошибки веб-страниц
  • Что делать, если пропал интернет на Windows

В статье мы расскажем, как исправить ошибку (код состояния) 500 со стороны пользователя и администратора сайта, а также подробно разберём, что такое ошибка запроса 500.

Что такое внутренняя ошибка сервера 500

Код ошибки 5хх говорит о том, что браузер отправил запрос корректно, но сервер не смог его обработать. Что значит ошибка 500? Это проблема сервера, причину которой он не может распознать.

Сообщение об ошибке сопровождается описанием. Самые популярные варианты:

  • Внутренняя ошибка сервера 500,
  • Ошибка 500 Internal Server Error,
  • Временная ошибка (500),
  • Внутренняя ошибка сервера,
  • 500 ошибка сервера,
  • Внутренняя ошибка HTTP 500,
  • Произошла непредвиденная ошибка,
  • Ошибка 500,
  • HTTP status 500 internal server error (перевод ― HTTP статус 500 внутренняя ошибка сервера).

Дизайн и описание ошибки 500 может быть любым, так как каждый владелец сайта может создать свою версию страницы. Например, так выглядит страница с ошибкой на REG.RU:

Как ошибка 500 влияет на SEO-продвижение

Для продвижения сайта в поисковых системах используются поисковые роботы. Они сканируют страницы сайта, проверяя их доступность. Если страница работает корректно, роботы анализируют её содержимое. После этого формируются поисковые запросы, по которым можно найти ресурс в поиске.

Когда поисковый робот сканирует страницу с ошибкой 500, он не изменяет её статус в течение суток. В течение этого времени администратор может исправить ошибку. Если робот перейдёт на страницу и снова столкнётся с ошибкой, он исключит эту страницу из поисковой выдачи.

Проверить, осталась ли страница на прежних позициях, можно с помощью Google Search Console. Если робот исключил страницу из поисковой выдачи, её можно добавить снова.

Код ошибки 500: причины

Если сервер вернул ошибку 500, это могло случиться из-за настроек на web-хостинге или проблем с кодом сайта. Самые распространённые причины:

  • ошибки в файле .htaccess,
  • неподходящая версия PHP,
  • некорректные права на файлы и каталоги,
  • большое количество запущенных процессов,
  • большие скрипты,
  • несовместимые или устаревшие плагины.

Решить проблему с сервером можно только на стороне владельца веб-ресурса. Однако пользователь тоже может выполнить несколько действий, чтобы продолжить работу на сайте.

Что делать, если вы пользователь

Если на определённом ресурсе часто возникает ошибка 500, вы можете связаться с владельцем сайта по инструкции.

Перезагрузите страницу

Удаленный сервер возвращает ошибку не только из-за серьёзных проблем на сервере. Иногда 500 ошибка сервера может быть вызвана небольшими перегрузками сайта.

Чтобы устранить ошибку, перезагрузите страницу с помощью сочетания клавиш:

  • на ПК — F5,
  • на ноутбуке — Fn + F5,
  • на устройствах от Apple — Cmd + R.

Обратите внимание! Если вы приобретаете товары в интернет-магазине и при оформлении заказа появляется 500 Internal Server Error (перевод — внутренняя ошибка сервера), при перезагрузке страницы может создаться несколько заказов. Поэтому сначала проверьте, оформился ли ваш предыдущий заказ. Если нет, попробуйте оформить заказ заново.

Очистите кэш и cookies браузера

Кэш и cookies сохраняют данные посещаемых сайтов и данные аутентификаций, чтобы в будущем загружать веб-ресурсы быстрее. Если на ресурсе уже был статус ошибки 500, при повторном входе на сайт может загружаться старая версия страницы с ошибкой из кэша, хотя на самом деле страница уже работает. Очистить кэш и куки браузера вам поможет инструкция.

Если ни одно из этих действий не решило проблему, значит, некорректно работает сам сервер сайта. Вернитесь на страницу позже, как только владелец решит проблему.

Что делать, если вы владелец сайта

В большинстве случаев устранить проблему может только владелец сайта. Как правило, ошибка связана с проблемами в коде. Реже проблемы могут быть на физическом сервере хостинг-провайдера.

Ниже рассмотрим самые популярные причины и способы решения.

Ошибки в файле .htaccess

Неверные правила в файле .htaccess — частая причина возникновения ошибки. Чтобы это проверить, найдите .htaccess в файлах сайта и переименуйте его (например, в test). Так директивы, прописанные в файле, не повлияют на работу сервера. Если сайт заработал, переименуйте файл обратно в .htaccess и найдите ошибку в директивах. Если вы самостоятельно вносили изменения в .htaccess, закомментируйте новые строки и проверьте доступность сайта.Также может помочь замена текущего файла .htaccess на стандартный в зависимости от CMS.

Найти директиву с ошибкой можно с помощью онлайн-тестировщика. Введите содержимое .htaccess и ссылку на сайт, начиная с https://. Затем нажмите Test:


Произошла непредвиденная ошибка

На экране появится отчёт. Если в .htaccess есть ошибки, они будут выделены красным цветом:


500 ошибка nginx

Активирована устаревшая версия PHP

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

Установлены некорректные права на файлы и каталоги сайта

В большинстве случаев корректными правами для каталогов являются «755», для файлов — «644». Проверьте, правильно ли они установлены, и при необходимости измените права на файлы и папки.

Запущено максимальное количество процессов

На тарифах виртуального хостинга REG.RU установлены ограничения на количество одновременно запущенных процессов. Например, на тарифах линейки «Эконом» установлено ограничение в 18 одновременно запущенных процессов, на тарифах «+Мощность» ― 48 процессов. Если лимит превышен, новый процесс не запускается и возникает системная ошибка 500.

Такое большое число одновременных процессов может складываться из CRON-заданий, частых подключений с помощью почтовых клиентов по протоколу IMAP, подключения по FTP или других процессов.

Чтобы проверить количество процессов, подключитесь по SSH. Выполните команду:

ps aux | grep [u]1234567 |wc -l

Вместо u1234567 укажите ваш логин хостинга: Как узнать логин хостинга.

Чтобы посмотреть, какие процессы запущены, введите команду:

Вместо u1234567 укажите логин услуги хостинга.

Командная строка отобразит запущенные процессы:


Код ошибки 500

Где:

  • u1234567 — логин услуги хостинга,
  • 40522 — PID процесса,
  • S — приоритет процесса,
  • /usr/libexec/sftp-server — название процесса.

Процесс можно завершить командой kill, например:

Вместо 40522 укажите PID процесса.

Чтобы решить проблему, вы также можете:

  • увеличить интервал запуска заданий CRON,
  • ограничить количество IMAP-соединений в настройках почтового клиента. Подробнее в статье Ограничение IMAP-соединений,
  • проанализировать запущенные процессы самостоятельно или обратившись за помощью к разработчикам сайта.

Если вам не удалось самостоятельно устранить ошибку 500, обратитесь в техподдержку.

Скрипты работают слишком медленно

На каждом виртуальном хостинге есть ограничения на время выполнения скрипта. Если за установленное время скрипт не успевает выполниться, возникает ошибка сервера 500. Для решения проблемы обратитесь к разработчику сайта и оптимизируйте скрипты. Если оптимизировать нельзя, перейдите на более мощный вид сервера.

У пользователей VPS есть возможность увеличить максимальное использование оперативной памяти на процесс, но лучше делать скрипты меньшего размера.

Ошибка 500 на сайте, созданном на WordPress

WordPress предлагает много плагинов для создания хорошего сайта. Они значительно расширяют возможности CMS. Однако они же могут нарушать работу сайта и вызывать ошибку 500. Вызвать ошибку могут как недавно установленные плагины, так и старые.

Для начала проверьте, нужно ли обновить плагины. Часто устаревшие плагины перестают работать и вызывают проблемы работы сайта. Если все плагины обновлены, но 500 Internal Server Error остаётся, отключите все плагины, чтобы убедиться, что именно они мешают работе сайта. Как только станет понятно, что виноват один из плагинов, отключайте их по очереди, пока не найдёте тот, который нарушает работу сервера.


Как отключить плагин в WordPress

  1. 1.

  2. 2.

    Перейдите во вкладку «Плагины» ― «Установленные».

  3. 3.

    Нажмите Деактивировать у плагина, который, как вам кажется, повлиял на работу сайта:

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

StackOverflow

All rights reserved.

93 / 83 / 24

Регистрация: 03.08.2013

Сообщений: 258

1

07.12.2013, 21:15. Показов 22764. Ответов 10

Метки нет (Все метки)


Замучила.
Создал табличку. Потом вторую, с некоторыми полями, ссылающимися на поля из первой таблицы. Не создаётся. Выскакивает эта ошибка и всё тут. Вот код:

SQL
1
2
3
4
5
6
7
8
9
10
CREATE TABLE products ( product_id INTEGER PRIMARY KEY DEFAULT NEXTVAL( 'index' ), 
                                   product_name VARCHAR NOT NULL DEFAULT ' ',
                                   price NUMERIC DEFAULT 0.00 CONSTRAINT price_can_not_have_a_sign CHECK ( price >= 0.00 ) );
 
-- Поместил туда строчку данных, затем пытаюсь создать вторуб таблицу:
 
CREATE TABLE products_table ( name VARCHAR, 
                                           prod_price NUMERIC, 
                                           FOREIGN KEY ( name, prod_price ) REFERENCES products ( product_name, price ) );
--ERROR: there is no unique constraint matching given keys for referenced table "products"

Я с SQL только знакомлюсь, много ещё не знаю. Учусь по манам. С утра сижу, может поэтому не соображаю уже, где тут ошибка. Ах да, СУБД — PostgreSQL.

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



1562 / 1040 / 94

Регистрация: 17.04.2009

Сообщений: 2,995

07.12.2013, 21:42

2

Цитата
Сообщение от StackOverflow
Посмотреть сообщение

Ошибка «There is no unique constraint matching given keys for referenced table»

Ну тут же русским по белому написано — нужен констрейнт на уникальность на пару products(product_name, price)



0



All rights reserved.

93 / 83 / 24

Регистрация: 03.08.2013

Сообщений: 258

07.12.2013, 21:50

 [ТС]

3

KuKu, да перевести то я в состоянии, я не могу понять, какое/-ие ограничение/-я на уникальность то нужны? Что с кодом не так?



0



1562 / 1040 / 94

Регистрация: 17.04.2009

Сообщений: 2,995

07.12.2013, 21:52

4



0



All rights reserved.

93 / 83 / 24

Регистрация: 03.08.2013

Сообщений: 258

07.12.2013, 21:55

 [ТС]

5

KuKu, я эту главу перечитал уже раз -дцать. Вы видите ошибку?



0



1562 / 1040 / 94

Регистрация: 17.04.2009

Сообщений: 2,995

07.12.2013, 21:58

6

Цитата
Сообщение от StackOverflow
Посмотреть сообщение

KuKu, я эту главу перечитал уже раз -дцать. Вы видите ошибку?

Ну можно прочитать -дцать первый. Создайте unique constraint на поля (product_name, price) в таблице products
Для создания foreign key, нужно чтобы был создан unique key в той таблице, на которую ссылаются.



1



All rights reserved.

93 / 83 / 24

Регистрация: 03.08.2013

Сообщений: 258

07.12.2013, 22:15

 [ТС]

7

Из всего этого я вынес, что ссылаться можно на колонку/-и, содержащую/-ие уникальные данные. Верно?



0



1562 / 1040 / 94

Регистрация: 17.04.2009

Сообщений: 2,995

07.12.2013, 22:17

8

Да.
+ обычно ссылаются на айдишники, а не на натуральные поля.
Лучше поищите какой-нибудь «SQL для чайников» — ваша структу, вызывает некоторые вопросы — да и прояснится многое.



1



All rights reserved.

93 / 83 / 24

Регистрация: 03.08.2013

Сообщений: 258

07.12.2013, 22:25

 [ТС]

9

KuKu, а если сослаться просто на айдишник, как тогда проверить, что наименование товара в первой и во второй таблице совпадают? Скажем, заплонил я первую таблицу некоторыми строками с наименованием товара и ценой, а при заполнении второй таблицы я либо допустил ошибку и добавил неверное имя, либо намеренно добавил товар, которого нет в списке в первой таблице. Возникновение противоречивости данных, хранящихся в базе, разве не так? Я, конечно же, допускаю, что могу не понимать принципа работы подобных механизмов. Если я в чём-то ошибаюсь, поправьте пожалуйста.



0



1562 / 1040 / 94

Регистрация: 17.04.2009

Сообщений: 2,995

07.12.2013, 22:32

10

Ну я не могу ничего советовать, пока не знаю что вы хотите хранить — но чаще всего так неверно.

Цитата
Сообщение от StackOverflow
Посмотреть сообщение

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

Для того, чтобы не было ошибок и надо заполнять в одном месте. А в другом месте указать айдишник — и по айдишнику мы достаем однозначное значение имени и цены. Без какого-нибудь словесного описания структуры сложно говорить конкретнее. Да и люди наверное книги про это пишут — в пост явно не уложиться



1



All rights reserved.

93 / 83 / 24

Регистрация: 03.08.2013

Сообщений: 258

07.12.2013, 22:49

 [ТС]

11

KuKu, если вам интересно, чего я пытаюсь добиться, то вот вам ссылка на тему, в которой, к сожалению, так пока никто и не отписался. В ней я подробно изложил суть ТЗ. С базами данных раньше дел не имел, поэтому приходится и проектом заниматься, и разбираться одновременно. Буду очень рад любому совету
https://www.cyberforum.ru/post… 29324.html



0



Понравилась статья? Поделить с друзьями:
  • Internal error no matching private keys available zakupki gazprom ru
  • Internal error message unlock code was revoked
  • Internal error memory access violation nx
  • Internal error la30 delphi 7
  • Internal error java nio file accessdeniedexception