Содержание
- FileZilla Forums
- Could not load certificate file: error:02001003:system library:fopen:No such process (0)
- Could not load certificate file: error:02001003:system library:fopen:No such process (0)
- Re: Could not load certificate file: error:02001003:system library:fopen:No such process (0)
- Re: Could not load certificate file: error:02001003:system library:fopen:No such process (0)
- Заметки сисадмина о интересных вещах из мира IT, инструкции и рецензии. Настраиваем Компьютеры/Сервера/1С/SIP-телефонию в Москве
- Apache SSL: переход Apache на HTTPS
- Нужен ли HTTPS?
- Сертификаты SSL
- Как сгенерировать SSL сертификат в Windows
- error:02001003:system library:fopen:No such process #842
- Comments
- openssl config failed: error:02001003:system library:fopen:No such process #17261
- Comments
- I’m opening this issue because:
- What’s going wrong?
- How can the CLI team reproduce the problem?
- supporting information:
- Как устранить ошибку «не удалось загрузить сертификат клиента PEM, ошибка OpenSSL: 02001003: системная библиотека: fopen: Нет такого процесса»?
FileZilla Forums
Welcome to the official discussion forums for FileZilla
Could not load certificate file: error:02001003:system library:fopen:No such process (0)
Could not load certificate file: error:02001003:system library:fopen:No such process (0)
#1 Post by bitboy0 » 2018-09-26 10:18
I have a computer with Windows 10 Enterprise. I want Filezilla to run as the only server service and of course it should be secured via TLS. I have a SSL-Cert and the key to it (Thawte) with matching domain name left. Since port 80 of the domain already runs on another computer with LetsEncrypt, I cannot secure the FTP server with Letsencrypt.
If I enter the key and the CRT at Filzilla I get the message:
«Could not load certificate file: error:02001003:system library:fopen:No such process (0)»
What else do I have to install on my computer to make it work?
Translated with www.DeepL.com/Translator
Re: Could not load certificate file: error:02001003:system library:fopen:No such process (0)
#2 Post by boco » 2018-09-26 11:17
Re: Could not load certificate file: error:02001003:system library:fopen:No such process (0)
#3 Post by bitboy0 » 2018-09-26 12:52
It’s the typical Form like Apache needs. blah.key and blah.CRT
Text-Files.
——BEGIN RSA PRIVATE KEY——
MIIEpQIBAAKCAQEAzUuXJhA4X+/RYYvqMJ8AgEd2Y8xgG+kRd0RTnwboLC9tnGHX
.
G22ynFItG6qiAiyNzf5OQoU2zt57v1UN5/JUjj2F5k7+3hjQm7/2mqc=
——END RSA PRIVATE KEY——
——BEGIN CERTIFICATE——
MIIGNDCCBRygAwIBAgIQD35h8q2pdQE9b4SqLr3C0jANBgkqhkiG9w0BAQsFADBc
.
0itUia6kgL8=
——END CERTIFICATE——
If I select a wrong key-format than I can’t even close the dialog without Error. So I can close the dialog but get this error in the LOG-Window
Источник
Заметки сисадмина о интересных вещах из мира IT, инструкции и рецензии. Настраиваем Компьютеры/Сервера/1С/SIP-телефонию в Москве
Apache SSL: переход Apache на HTTPS
Нужен ли HTTPS?
Протокол HTTPS позволяет передавать данные между сайтом и пользователем в зашифрованном виде, то есть посторонние лица не могут увидеть содержимое передаваемых данных и изменить их.
Веб-сервер Apache поддерживает работу HTTPS. Для настройки HTTPS на Apache нужен SSL сертификат. Точнее говоря, «SSL сертификат» включает в себя приватный ключ и публичный ключ (сертификат). Также вместе с SSL ключами дополнительно могут присылаться сертификаты центра сертификации, корневой сертификат.
Сертификаты SSL
SSL сертификаты можно разделить на два вида: валидные и самоподписанные.
Сертификат SSL можно сгенерировать у себя на компьютере. Причём можно сгенерировать для любого доменного имени. Но к таким сертификатам у веб-браузеров нет доверия. Поэтому если открыть сайт, защищённый таким сертификатом, то веб-браузер напишет ошибку, что сертификат получен из ненадёжного источника и либо запретит открывать этот сайт, либо предложит перейти на сайт на ваш страх и риск. Это так называемые «самоподписанные сертификаты». Чтобы браузер не выдавал ошибку о ненадёжного сертификате, его нужно добавить в список доверенных. Такие сертификаты подойдут для тестирования веб-сервера и обучению настройки веб-сервера для работы с SSL и HTTPS. Ещё такой сертификат можно использовать на сайте, к которому имеет доступ ограниченный круг лиц (несколько человек) — например, для сайтов в локальной сети. В этом случае они все могут добавить сертификат в доверенные.
Для реального сайта такой сертификат не подойдёт.
Для рабочего окружения нужен валидный сертификат, его можно получить двумя способами:
1) получить тестовый сертификат на 3 месяца (затем его можно продлить)
2) купить сертификат — в этом случае он действует от года и более
Валидный сертификат отличается от самоподписанного тем, что сторонний сервис удостоверяет подлинность этого сертификата. Собственно, оплачивается именно эта услуга удостоверения, а не выдача сертификата.
Данная статья посвящена вопросу, как настроить Apache в Windows для работы с протоколом HTTPS, будет показано, как подключить SSL сертификаты к Apache в Windows. Поэтому для целей тестирования и обучения нам хватит самоподписанного сертификата.
Как сгенерировать SSL сертификат в Windows
У меня веб-сервер установлен в папку C:ServerbinApache24, поэтому если у вас он в другой директории, то подправьте команды под свои условия.
Откройте командную строку Windows (Win+x, далее выберите «Windows PowerShell (администратор)»). В командной строке введите команды:
Источник
error:02001003:system library:fopen:No such process #842
Hi, when I use the command php bin/console lexik:jwt:generate-keypair for generate the key, the console shows this error
`In GenerateKeyPairCommand.php line 151:
error:02001003:system library:fopen:No such process
`
O.S = Windows 10
PHP = 7.1
SYMFONY = 5
OPENSSL running
The text was updated successfully, but these errors were encountered:
Looks like you are hitting a PHP bug that has been fixed in PHP 7.2: https://bugs.php.net/bug.php?id=60157
I get the same Error,
php: 7.3.26
symfony 5.2
Windows 10
$ php bin/console lexik:jwt:generate-keypair
In GenerateKeyPairCommand.php line 156:
error:02001003:system library:fopen:No such process
my php version
$ php —version
PHP 7.3.26 (cli) (built: Jan 5 2021 15:10:35) ( ZTS MSVC15 (Visual C++ 2017) x64 )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.26, Copyright (c) 1998-2018 Zend Technologies
$ openssl version
OpenSSL 1.1.1i 8 Dec 2020
I hit this bug as well and managed to figure out a work-around. For some reason, setting the environment variable for OPENSSL_CONF does not work. Not even putenv(«OPENSSL_CONF=
To work-around, provide the «config» parameter when using openssl functions. For example:
$new_key = openssl_pkey_new(array(
«private_key_bits» => 2048,
«private_key_type» => OPENSSL_KEYTYPE_RSA,
«config» => «
Hopefully someone can look into this because, wow- that was infuriating
Источник
openssl config failed: error:02001003:system library:fopen:No such process #17261
I’m opening this issue because:
- npm is crashing.
- npm is producing an incorrect install.
- npm is doing something I don’t understand.
- Other (see below for feature requests):
What’s going wrong?
Everytime I run the npm command I get:
The command still works, but any output is preceded by that warning/error.
How can the CLI team reproduce the problem?
supporting information:
- npm -v prints:
- node -v prints:
- npm config get registry prints:
- Windows, OS X/macOS, or Linux?:
Windows 10 - Network issues:
- Geographic location where npm was run:
- I use a proxy to connect to the npm registry.
- I use a proxy to connect to the web.
- I use a proxy when downloading Git repos.
- I access the npm registry via a VPN
- I don’t use a proxy, but have limited or unreliable internet access.
- Container:
- I develop using Vagrant on Windows.
- I develop using Vagrant on OS X or Linux.
- I develop / deploy using Docker.
- I deploy to a PaaS (Triton, Heroku).
The text was updated successfully, but these errors were encountered:
Experiencing the same issues here. Only difference I see in setup: node -v is v8.1.1. Tried uninstalling, clearing cache, and reinstalling, no luck. Rolled back to node 7.0.0, (the last release that had no mention of openssl in the commits) no issues. Updated back to 8.0.0, issue is back. Will continue seeing where the problem occurs, and figure this out from the change logs if someone else doesn’t beat me to it.
I have the exact same issue with all node versions >= 8.0.0. Npm is on the latest version 5.0.3. Actually all npm commands print these errors but still they seem to work fine. If anyone manages to solve it I would be really glad as it is really annoying.
@npm Facing same issues with Node version 6.11.0 and npm version 3.10.10. Please fix those issues.
Removing global environment variable OPENSSL_CONF (leftover from previous troubleshooting) solved my problem.
Running on Windows you might try:
- Set environment in local command window and verify problem:
=> you now probably see this ssl error message
- Remove environment and verify problem is gone:
=> no ssl error message
Seems doing #1 and #2 might fix the problem even though you originally did not have any OPENSSL_CONF environment variable
what’s wrong with that!
I am also experiencing this issue installing and running npm on Windows 10 Professional.
I tried with creating a blank file (C:ssl.cnf) and setting the same path in for variable OPENSSL_CONF
I got the same error.
How I got the error:
- I have the recommended version of nodejs on my windows 7 computer, i forgot the version.
- I downloaded and install the latest node 8.8.1 and install it on my computer without uninstalling the previous node that already on my machine.
- Try to run npm install on my projects then got a bunch of errors
- Try to run npm -v, then I got those 2 lines of errors
Currently I am trying to reinstall nodejs properly on my machine. Wish me luck.
i have this issue, and solved with set true path for OPENSSL_CONF variable in system variable.
Removed OPENSSL_CONF from Envirnonment Varialbles, it worked like charm..
For Windows, you’ll want to run:
Then remove any out-of-date references to OPENSSL_CONF from your profiles. Usually that’s just $PROFILE :
Источник
Как устранить ошибку «не удалось загрузить сертификат клиента PEM, ошибка OpenSSL: 02001003: системная библиотека: fopen: Нет такого процесса»?
Простите, если вопрос глупый, но я новичок в этой области. Мне нужно подключиться к службе через SSL с сайта Drupal 7. У меня есть файл с расширением «.p12» и пароль для него. Также я использую PHP 7.1 1 и Windows 7 64x. Я преобразовал .p12-файл в .pem-файл, используя следующую команду.
Раньше я установил Openssl на свой компьютер и добавил пути в Windows. После этого я пытаюсь использовать следующий код для подключения к серверу с помощью функций CURL.
К сожалению, curl_exec возвращает FALSE, а curl_error возвращает следующее:
Я решаю выполнить этот код на сайте клиента, который находится на общем хостинге Linux, тогда как мой локальный хост работает на Windows 7 64x. Код выполняется без ошибок, но curl_exec возвращает пустую строку.
Хочу уточнить, что я делаю не так и почему сертификат клиента PEM не хочет загружаться? Что мне делать на моем локальном хосте, чтобы решить эту проблему? Я не могу отказаться от Windows 7 и начать использовать вместо нее Linux.
Вы пробовали посмотреть файл .pem. Я предполагаю, что файл содержит сертификат и ключ. stackoverflow.com/a/15144560/254234 Это недопустимый формат для последующей загрузки в CURLOPT_SSLCERT. Разница между Windows / Linux может заключаться в том, что у вашего хостинг-провайдера журнал ошибок и уровень ошибок / ошибки отображения разные.
Пробовал разными способами, но отображается та же ошибка.
Вы пробовали точно определить путь к .pem? Без содержимого файла .pem отладить эту проблему непросто. Но, открыв ключ .pem, вы можете раскрыть свой ключ.
Вы также можете проверить сертификат клиента с помощью openssl x509 -in myfile.pem -noout -text
Вы можете проверить, какой путь используется вашим php curl для получения файла pem, возможно, это просто конфигурация mystake
Поскольку вы используете только имя файла — вы проверили, что файл найден? Попробуйте абсолютный путь .
Какую версию cURL вы используете? Поскольку CURLOPT_SSLCERTPASSWD больше не является допустимым ключевым словом после 7.9.2 . см. Здесь: curl.haxx.se/libcurl/c/CURLOPT_KEYPASSWD.html
У вас установлена переменная env OPENSSL_CONF ? Если да, указывает ли это на правильный файл конфигурации?
замените curl_exec () на $stderr=tmpfile(); curl_setopt_array($ch,array(CURLOPT_VERBOSE=>1,CURLOPT_STDERR=>$stderr)); $result = curl_exec($ch); /* https://bugs.php.net/bug.php?id=76268 */ rewind($stderr); var_dump(stream_get_contents($stderr)); fclose($stderr); — что вы получите?
согласно примеру вы должны указать CURLOPT_SSLCERT , CURLOPT_SSLKEY и CURLOPT_KEYPASSWD . Также: используйте абсолютные пути.
Вы решили эту проблему? У меня тоже есть эта проблема. Я пробовал использовать CURL, Guzzle и SoapClient, но пока не смог.
Источник
Moderator: Project members
-
bitboy0
- 500 Command not understood
- Posts: 3
- Joined: 2018-09-26 10:13
- First name: Sven
- Last name: Schumacher
Could not load certificate file: error:02001003:system library:fopen:No such process (0)
#1
Post
by bitboy0 » 2018-09-26 10:18
Hello, folks.
I have a computer with Windows 10 Enterprise. I want Filezilla to run as the only server service and of course it should be secured via TLS. I have a SSL-Cert and the key to it (Thawte) with matching domain name left. Since port 80 of the domain already runs on another computer with LetsEncrypt, I cannot secure the FTP server with Letsencrypt.
If I enter the key and the CRT at Filzilla I get the message:
«Could not load certificate file: error:02001003:system library:fopen:No such process (0)»
What else do I have to install on my computer to make it work?
Translated with www.DeepL.com/Translator
-
bitboy0
- 500 Command not understood
- Posts: 3
- Joined: 2018-09-26 10:13
- First name: Sven
- Last name: Schumacher
Re: Could not load certificate file: error:02001003:system library:fopen:No such process (0)
#3
Post
by bitboy0 » 2018-09-26 12:52
It’s the typical Form like Apache needs. blah.key and blah.CRT
Text-Files…
——BEGIN RSA PRIVATE KEY——
MIIEpQIBAAKCAQEAzUuXJhA4X+/RYYvqMJ8AgEd2Y8xgG+kRd0RTnwboLC9tnGHX
…
G22ynFItG6qiAiyNzf5OQoU2zt57v1UN5/JUjj2F5k7+3hjQm7/2mqc=
——END RSA PRIVATE KEY——
and
——BEGIN CERTIFICATE——
MIIGNDCCBRygAwIBAgIQD35h8q2pdQE9b4SqLr3C0jANBgkqhkiG9w0BAQsFADBc
…
0itUia6kgL8=
——END CERTIFICATE——
If I select a wrong key-format than I can’t even close the dialog without Error. So I can close the dialog but get this error in the LOG-Window
-
botg
- Site Admin
- Posts: 34742
- Joined: 2004-02-23 20:49
- First name: Tim
- Last name: Kosse
- Contact:
Re: Could not load certificate file: error:02001003:system library:fopen:No such process (0)
#4
Post
by botg » 2018-09-26 16:32
Does the Windows account the FileZilla Server service runs under have permissions to access the file?
-
bitboy0
- 500 Command not understood
- Posts: 3
- Joined: 2018-09-26 10:13
- First name: Sven
- Last name: Schumacher
Re: Could not load certificate file: error:02001003:system library:fopen:No such process (0)
#5
Post
by bitboy0 » 2018-10-01 09:59
Its a normal file in c:certs
So any user should have access …
-
garyhassani
- 500 Command not understood
- Posts: 1
- Joined: 2018-10-30 19:39
- First name: Gary
- Last name: Hassani
Re: Could not load certificate file: error:02001003:system library:fopen:No such process (0)
#6
Post
by garyhassani » 2018-10-30 19:41
What was the solution to this problem please?
I am experiencing the same message.
thank you
error:02001003:system library:fopen:No such process
Today I’ve been working on a feature which requires secure communication. For this, Public/Private keypair generation process is used to
The OpenSSL library is a really good library for this purpose, but its implementation with PHP is not so good due to the library just being a wrapper pointing to the actual OpenSSL binary.
This makes it extremely hard to pinpoint errors due to there being no single point for source code as the OpenSSL binary is compiled.
In the script I’ve been developing I kept seeing the following errors:
Creation of Private Certificate failed.
error:02001003:system library:fopen:No such process
error:2006D080:BIO routines:BIO_new_file:no such file
error:0E064002:configuration file routines:CONF_load:system lib
error:02001003:system library:fopen:No such process
error:2006D080:BIO routines:BIO_new_file:no such file
error:0E064002:configuration file routines:CONF_load:system lib
error:02001003:system library:fopen:No such process
error:2006D080:BIO routines:BIO_new_file:no such file
error:0E064002:configuration file routines:CONF_load:system lib
error:02001003:system library:fopen:No such process
error:2006D080:BIO routines:BIO_new_file:no such file
error:0E064002:configuration file routines:CONF_load:system lib
After hours of searching the internet and debugging various scripts in multiple environments,
So how do you debug such an issue with OpenSSL in PHP?
Remember, this code should never be hosted on a production server unless you know what you’re doing!
error_reporting(E_ALL | E_STRICT); // NOT FOR PRODUCTION SERVERS!
ini_set('display_errors', '1'); // NOT FOR PRODUCTION SERVERS!
Now if you run your OpenSSL script again you should see some output similar to the following:
Warning: openssl_csr_sign(): cannot get CSR from parameter 1 in
C:webauthsaml2setuplib.php on line 81
Warning: openssl_x509_export(): cannot get cert from parameter 1 in
C:webauthsaml2setuplib.php on line 82
Warning: openssl_pkey_export(): cannot get key from parameter 1 in
C:webauthsaml2setuplib.php on line 83
Warning: openssl_pkey_export(): cannot get key from parameter 1 in
C:webauthsaml2setuplib.php on line 84
Warning: openssl_csr_sign(): cannot get CSR from parameter 1 in
C:webauthsaml2setuplib.php on line 81
Warning: openssl_x509_export(): cannot get cert from parameter 1 in
C:webauthsaml2setuplib.php on line 82
Warning: openssl_pkey_export(): cannot get key from parameter 1
in C:webauthsaml2setuplib.php on line 83
Warning: openssl_pkey_export(): cannot get key from parameter 1 in
C:webauthsaml2setuplib.php on line 84
Current PHP version: 7.3.6
*** OPENSSL_CONF
string(58) “C:Usersjo209050DesktopBitnami/apache2/conf/openssl.cnf”
*** Errors before calling openssl_pkey_new
string(51) “error:02001003:system library:fopen:No such process”
string(53) “error:2006D080:BIO routines:BIO_new_file:no such file”
string(63) “error:0E064002:configuration file routines:CONF_load:system lib”
string(68) “error:0E06D06C:configuration file routines:NCONF_get_string:no value”
string(68) “error:0E06D06C:configuration file routines:NCONF_get_string:no value”
string(68) “error:0E06D06C:configuration file routines:NCONF_get_string:no value”
string(68) “error:0E06D06C:configuration file routines:NCONF_get_string:no value”
string(68) “error:0E06D06C:configuration file routines:NCONF_get_string:no value”
*** Calling openssl_pkey_new
Resource id #21
https://www.php.net/manual/en/function.openssl-pkey-new.php
OpenSSL support enabled
OpenSSL Library Version OpenSSL 1.1.1c 28 May 2019
OpenSSL Header Version OpenSSL 1.1.1b 26 Feb 2019
Openssl default config C:Program FilesCommon FilesSSL/openssl.cnf
Posted on
11 Mar 2018
by Joel Murphy. Last updated:
September 09, 2019
.
👀 Looking for more content?
There’s plenty more content to explore:
- Blog Posts
- Tutorials
- Portfolio Items
- Money Saving Guides
- Product Reviews
I’m opening this issue because:
- npm is crashing.
- npm is producing an incorrect install.
- npm is doing something I don’t understand.
- Other (see below for feature requests):
What’s going wrong?
Everytime I run the npm
command I get:
openssl config failed: error:02001003:system library:fopen:No such process
The command still works, but any output is preceded by that warning/error.
How can the CLI team reproduce the problem?
supporting information:
npm -v
prints:
openssl config failed: error:02001003:system library:fopen:No such process openssl config failed: error:02001003:system library:fopen:No such process 5.0.3
node -v
prints:
v8.1.2
npm config get registry
prints:
openssl config failed: error:02001003:system library:fopen:No such process openssl config failed: error:02001003:system library:fopen:No such process https://registry.npmjs.org/
- Windows, OS X/macOS, or Linux?:
Windows 10 - Network issues:
- Geographic location where npm was run:
- I use a proxy to connect to the npm registry.
- I use a proxy to connect to the web.
- I use a proxy when downloading Git repos.
- I access the npm registry via a VPN
- I don’t use a proxy, but have limited or unreliable internet access.
- Container:
- I develop using Vagrant on Windows.
- I develop using Vagrant on OS X or Linux.
- I develop / deploy using Docker.
- I deploy to a PaaS (Triton, Heroku).
https://vk.com/dev/certificat ( инфу брал от туда )
Делаю бота для группы вк, и конечно надо сделать .p12 файл. Скачал OpenSSL 32bit Запустил, ввёл комманду » openssl req -newkey rsa:2048 -sha256 -nodes -keyout vkapi.key -x509 -days 365 -out vkapi.crt -subj «/C=RU/ST=Noscow/L=Moscow/O=VK API Club/CN=vkapi» «ввёл и тут ошибка
Can’t open C:Program Files (x86)Common FilesSSL/openssl.cnf for reading, No s
uch file or directory
6056:error:02001003:system library:fopen:No such process:cryptobiobss_file.c:7
2:fopen(‘C:Program Files (x86)Common FilesSSL/openssl.cnf’,’r’)
6056:error:2006D080:BIO routines:BIO_new_file:no such file:cryptobiobss_file.c
:79:
Generating a RSA private key
……………………….+++++
……+++++
writing new private key to ‘vkapi.key’
——
unable to find ‘distinguished_name’ in config
problems making Certificate Request
6056:error:0E06D06A:configuration file routines:NCONF_get_string:no conf or envi
ronment variable:cryptoconfconf_lib.c:270:
Проблема в том что создался лишь vkapi.key а vkapi.crt нету. Что делать?
Проблема: OpenSSL не работает в моей среде Windows. OpenSSL многократно сообщает об ошибках 0x02001003, 0x2006D080 и 0x0E064002.
Окружающая среда:
Windows NT x 6.1 build 7601 (Windows 7 Business Edition Service Pack 1) i586
Apache/2.4.4 (Win32)
PHP/5.4.13 x86
PHP Directory: E:wampphp
Virtual Host Directory: E:Projects1public_html
Что я пытался:
- Инструкции по установке http://www.php.net/manual/en/openssl.installation.php
- PHP.ini
extension=php_openssl.dll
- Openssl.cnf
E:wampphpextrasopenssl.cnf
- % PATH%
E:wampphp
- перезагружается
- phpinfo:
—- Поддержка OpenSSL включена
—- OpenSSL Library Version OpenSSL 1.0.1e 11 Фев 2013
—- OpenSSL Версия заголовка OpenSSL 0.9.8y 5 февраля 2013 г. - С указанием и без указания config в
configargs
- С указанием и без указания
<Directory E:wampphpextras>
в конфигурации apache - Скопирован
openssl.cnf
в virtualhost public_html, указал на это и по-прежнему получает те же ошибки - Ничего не зарегистрировано error_log
- Исследовано: Я провел последние 2 дня, исследуя это, удивленный тем, что на нем больше нет информации, поэтому я публикую здесь. Кажется, проблема связана с конфигурацией OpenSSL или apache/php, которая неправильно считывает конфигурацию.
Код:
$privateKey = openssl_pkey_new();
while($message = openssl_error_string()){
echo $message.'<br />'.PHP_EOL;
}
Результаты:
error:02001003:system library:fopen:No such process
error:2006D080:BIO routines:BIO_new_file:no such file
error:0E064002:configuration file routines:CONF_load:system lib
error:02001003:system library:fopen:No such process
error:2006D080:BIO routines:BIO_new_file:no such file
error:0E064002:configuration file routines:CONF_load:system lib
OpenSSL Вручную:
E:wampapachebin>openssl.exe pkey
WARNING: can't open config file: c:/openssl-1.0.1e/ssl/openssl.cnf
E:wampapachebin>set OPENSSL_CONF="E:wampphpextrasopenssl.cnf"
E:wampapachebin>openssl.exe pkey
3484:error:0200107B:system library:fopen:Unknown error:.cryptobiobss_file.c:169:fopen('"E:wampphpextrasopenssl.cnf"','rb')
3484:error:2006D002:BIO routines:BIO_new_file:system lib:.cryptobiobss_file.c:174:
3484:error:0E078002:configuration file routines:DEF_LOAD:system lib:.cryptoconfconf_def.c:199:
EDIT:
- Благодаря @Gordon теперь я могу видеть ошибки open_ssl с помощью
openssl_error_string
- Полностью удалить EasyPHP. Вручную установлены стабильные версии PHP/Apache. Те же результаты! Определенно, что-то я делаю неправильно с внедрением openssl в windows.
- OpenSSL Вручную раздел… дополнительная информация об ошибке
ЗАКЛЮЧИТЕЛЬНЫЕ МЫСЛИ:
Я установил linux box, и я получаю те же ошибки. После некоторых игр я вижу, что, хотя он бросает ошибки в openssl_pkey_new, он в конечном итоге создает мой тестовый файл p12. Короче говоря, ошибки вводят в заблуждение, и ему приходится больше иметь дело с тем, как вы используете функции openssl, не так много конфигурации на стороне сервера.
Конечный код:
// Create the keypair
$res=openssl_pkey_new();
// Get private key
openssl_pkey_export($res, $privkey);
// Get public key
$pubkey=openssl_pkey_get_details($res);
$pubkey=$pubkey["key"];
// Actual file
$Private_Key = null;
$Unsigned_Cert = openssl_csr_new($Info,$Private_Key,$Configs);
$Signed_Cert = openssl_csr_sign($Unsigned_Cert,null,$Private_Key,365,$Configs);
openssl_pkcs12_export_to_file($Signed_Cert,"test.p12",$Private_Key,"123456");
Закрыть.
Через год…
Таким образом, я обнаружил, что делаю это снова год спустя, и независимо от любых переменных PATH, которые я установил на компьютере или во время выполнения script, он не обнаружил ошибки в файле. Я смог разрешить его, передав параметр config
в массиве config_args
в openssl_pkey_new
. Вот функция, которая проверяет возможность успешного использования OpenSSL:
/**
* Tests the ability to 1) create pub/priv key pair 2) extract pub/priv keys 3) encrypt plaintext using keys 4) decrypt using keys
*
* @return boolean|string False if fails, string if success
*/
function testOpenSSL($opensslConfigPath = NULL)
{
if ($opensslConfigPath == NULL)
{
$opensslConfigPath = "E:/Services/Apache/httpd-2.4.9-win32-VC11/conf/openssl.cnf";
}
$config = array(
"config" => $opensslConfigPath,
"digest_alg" => "sha512",
"private_key_bits" => 4096,
"private_key_type" => OPENSSL_KEYTYPE_RSA,
);
$res = openssl_pkey_new($config); // <-- CONFIG ARRAY
if (empty($res)) {return false;}
// Extract the private key from $res to $privKey
openssl_pkey_export($res, $privKey, NULL, $config); // <-- CONFIG ARRAY
// Extract the public key from $res to $pubKey
$pubKey = openssl_pkey_get_details($res);
if ($pubKey === FALSE){return false;}
$pubKey = $pubKey["key"];
$data = 'plaintext data goes here';
// Encrypt the data to $encrypted using the public key
$res = openssl_public_encrypt($data, $encrypted, $pubKey);
if ($res === FALSE){return false;}
// Decrypt the data using the private key and store the results in $decrypted
$res = openssl_private_decrypt($encrypted, $decrypted, $privKey);
if ($res === FALSE){return false;}
return $decrypted;
}
// Example usage:
$res = testOpenSSL();
if ($res === FALSE)
{
echo "<span style='background-color: red;'>Fail</span>";
} else {
echo "<span style='background-color: green;'>Pass: ".$res."</span>";
}