NYCPHP Meetup

NYPHP.org

[nycphp-talk] Use php to check for ssl/https support in apache

Rolan Yang rolan at omnistep.com
Fri Jul 14 22:22:21 EDT 2006


Apache can be started without the SSL regardless of the certificate's 
existence.
I just tested my code below and phpinfo reports https even when apache 
isn't listening on 443.
Sorry. You can toss it all out the window! :(

~Rolan

Jon Baer wrote:
> This may sound like a dumb question but wouldn't a test for a  
> specific certificate file somehow be a better sign that SSL is setup?
>
> Like attaching a check, if (file_exists('/some/path/cert.pem')) header 
> ("Location: https://secure/path/");
>
> ?
>
> - Jon
>
> On Jul 14, 2006, at 8:37 PM, Rolan Yang wrote:
>
>   
>> Here are 2 ways to do it without resorting to fopen.. Only applies if
>> your https is on the same server. The first is cleaner than the  
>> second,
>> but neither are guaranteed to work. Use at your own risk.
>>
>> function check_https() {
>>         ob_start();
>>         phpinfo(INFO_GENERAL);
>>         $phpinfo = ob_get_contents();
>>         ob_end_clean();
>>         $s=strpos($phpinfo,'Registered PHP Streams');
>>         $e=strpos($phpinfo,"\n",$s);
>>         if (strstr(substr($phpinfo,$s,$e-$s),'https')) {
>>                 return TRUE;
>>         }
>>         else {
>>                 return FALSE;
>>         }
>> }
>>
>> function check_https2() {
>>         ob_start();
>>         phpinfo(INFO_GENERAL);
>>         $test=strstr(ob_get_contents(),'https');
>>         ob_end_clean();
>>         if ($test) { return TRUE;}
>>         else {return FALSE;}
>> }
>>
>> ~Rolan
>>
>> Rob Marscher wrote:
>>     
>>> Hi All,
>>>
>>> I've done a bit of searching and haven't been able to find if  
>>> there's a
>>> means that php running on apache can determine if apache supports
>>> ssl/https connections.  It would be nice my app to force an https
>>> connection on certain pages if it is available.  Otherwise I'll  
>>> have to
>>> do it with a manual config switch.
>>>
>>> Running apache_get_modules() and checking for mod_ssl seems like an
>>> option... but doesn't work on PHP 4.4.2 w/ Apache 1.3 which a lot of
>>> production servers still use.  Any other ideas?
>>>
>>> Thanks a lot,
>>> Rob
>>>
>>>       
>> _______________________________________________
>> New York PHP Community Talk Mailing List
>> http://lists.nyphp.org/mailman/listinfo/talk
>> New York PHP Conference and Expo 2006
>> http://www.nyphpcon.com
>> Show Your Participation in New York PHP
>> http://www.nyphp.org/show_participation.php
>>
>>
>>     
>
> _______________________________________________
> New York PHP Community Talk Mailing List
> http://lists.nyphp.org/mailman/listinfo/talk
> New York PHP Conference and Expo 2006
> http://www.nyphpcon.com
> Show Your Participation in New York PHP
> http://www.nyphp.org/show_participation.php
>
>   



More information about the talk mailing list