• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1579
  • Last Modified:

PHP5 and OpenSSL

A script that use to work fine doesn't anymore. Now I get the error:
Notice: fopen() [function.fopen]: Unable to find the wrapper "https" - did you forget to enable it when you configured PHP?

When I do print_r(get_loaded_extensions()); openssl does not appear, but I'm using PHP5, which has openssl included.

I'm using WHM/Cpanel but I can also edit php.ini manually. Any ideas? In php.ini php_openssl.dll is not listed next to "extensions"
  • 2
1 Solution
Place the following line in your php.ini file.

Open in new window

phperAuthor Commented:
I added that, restarted httpd & sshd, which restarted. But got the same error on the script. Tried to graceful & forceful restarts but got this error both times:

cpsrvd failed @ Thu Oct 23 13:56:00 2008. A restart was attempted automagically.
Failure Reason: Unable to connect to port 2086

Then I restarted httpd & sshd again but the error on the script remains.

When I do print_r(get_loaded_extensions()); openssl still does not appear,
phperAuthor Commented:
From the error_logs

[23-Oct-2008 13:51:06] PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/no-debug-non-zts-20060613/php_openssl.dll' - /usr/local/lib/php/extensions/no-debug-non-zts-20060613/php_openssl.dll: cannot open shared object file: No such file or directory in Unknown on line 0
Hello, i made a simple how-to for myself, to use whenever i need.

I couldn't attach my zip file, so i will place here my little how to and the files you require

I need to have php 5 with ssl installed..

If you want i can email you with all the files i use in my mini how to..

- libeay32.dll
- openssl
- openssl.exe
- ssleay32.dll

- ssl.conf

- mod_ssl.so

Install SSL in Apache

Copy the following files to apache/bin directory

Copy the ssl.conf file to apache/conf directory
Create a folder named ssl inside apache/conf

Copy the file mod_ssl.so to folder apache/modules

Now, lets generate certeficate and keys

Inside the folder bin of apache in commando prompt:

Check the key: ServerName in httpd.conf so we can fill the CN in the certeficate creation

openssl req -config openssl.cnf -new -out nome_servidor.csr
openssl rsa -in privkey.pem -out nome_servidor.key
openssl x509 -in nome_servidor.csr -out nome_servidor.cert -req -signkey nome_servidor.key -days 1095

Now that we have the certs and keys, lets move the .cert and .key files to apache/conf/ssl

Edit httpd.conf file and change:

- uncomment: LoadModule rewrite_module modules/mod_rewrite.so


Include conf/ssl.conf
LoadModule ssl_module modules/mod_ssl.so

Edit ssl.conf and change the following directives with the both names generated (.key and .cert)


If you want to force http to redirect to https:

Place the following inside httpd.conf:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now