Bug #60157 [Com]: OPENSSL_CONF environment variable ignored

From: Date: Wed, 12 Feb 2014 22:07:34 +0000
Subject: Bug #60157 [Com]: OPENSSL_CONF environment variable ignored
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-184276@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=60157&edit=1

 ID:                 60157
 Comment by:         marco at m-s-d dot eu
 Reported by:        zeusgerde at arcor dot de
 Summary:            OPENSSL_CONF environment variable ignored
 Status:             Open
 Type:               Bug
 Package:            OpenSSL related
 Operating System:   Windows XP and Windows 7
 PHP Version:        5.3.8
 Block user comment: N
 Private report:     N

 New Comment:

Confirming still present in php5.6-201402121030 with OpenSSL 1.0.7f, OS w7 x64.


Previous Comments:
------------------------------------------------------------------------
[2013-03-22 19:15:08] eugene at zhegan dot in

Still reproducible on 5.3.23.

------------------------------------------------------------------------
[2012-01-03 21:25:54] dfroe at gmx dot de

I am able to reproduce this bug under FreeBSD, too. So it does not seem to be a Windows specific
issue. I am using PHP 5.3.8 compiled via the latest FreeBSD ports tree. The putenv() hint does not
work, either. Passing the config value within the config array directly to the openssl function
works - but can of course only be a quick and dirty workaround.

------------------------------------------------------------------------
[2011-10-31 07:51:05] zeusgerde at arcor dot de

> Where do you set it? System wild? manually in your script?

In httpd.conf in a global scope:
| SetEnv OPENSSL_CONF D:\sandbox\openssl.cnf

You can see that it is set in the actual result:
| var_dump(getenv('OPENSSL_CONF'));
| // string(42) "D:\sandbox\openssl.cnf"

(hint: don't look at the string length, I scrambled the path in this bug report)

> putenv("OPENSSL_CONF=whereyouwanit");

No change in the actual result. Even if I do this:

| putenv("OPENSSL_CONF=", getenv('OPENSSL_CONF'));

It only works if I use the $configargs parameter directly (see my first comment 
at 2011-10-28 11:48 UTC)

------------------------------------------------------------------------
[2011-10-28 12:45:52] pajoye@php.net

Where do you set it? System wild? manually in your script?

try:

putenv("OPENSSL_CONF=whereyouwanit");
.. rest of your code..

Only to verify a possible cause.

------------------------------------------------------------------------
[2011-10-28 11:50:18] zeusgerde at arcor dot de

BTW, this is the work-around

var_dump(openssl_pkey_new(array(
	'config' => getenv('OPENSSL_CONF'),
)));

------------------------------------------------------------------------


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    https://bugs.php.net/bug.php?id=60157


-- 
Edit this bug report at https://bugs.php.net/bug.php?id=60157&edit=1


Thread (10 messages)

« previous php.bugs (#184276) next »