Skip to content

PHP library to fetch data from SSL Labs API V3 PHP >= 7.2

License

Notifications You must be signed in to change notification settings

alexonbstudio/ssllabs-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

PHP-SSLLabs-API

This PHP library provides basic access to the SSL Labs API.

Usage example

Full example in full-pages.php

Methods

fetchApiInfo()

No parameters needed

Returns an Info object (see https://github.com/ssllabs/ssllabs-scan/blob/master/ssllabs-api-docs.md#info).

fetchStatusCodes()

No parameters needed

Returns a StatusCodes instance (see https://github.com/ssllabs/ssllabs-scan/blob/master/ssllabs-api-docs.md#statuscodes).

fetchHostInformation()

See https://github.com/ssllabs/ssllabs-scan/blob/master/ssllabs-api-docs.md#invoke-assessment-and-check-progress for parameter description.

Parameter Type Default value
host string Required
publish boolean false
startNew boolean false
fromCache boolean false
maxAge int null
all string null
ignoreMismatch boolean false

Returns a Host object (see https://github.com/ssllabs/ssllabs-scan/blob/master/ssllabs-api-docs.md#host).

Make sure to check the 'status' attribute inside Host object.

fetchHostInformationCached()

You can also use fetchHostInformationCached() with the proper parameters, this is just a helper function.

Parameter Type Default value
host string Required
maxAge int null
publish boolean false
ignoreMismatch boolean false

Returns a Host object (see https://github.com/ssllabs/ssllabs-scan/blob/master/ssllabs-api-docs.md#host).

Also make sure to check the 'status' attribute inside Host object.

getEndpointData()

See https://github.com/ssllabs/ssllabs-scan/blob/master/ssllabs-api-docs.md#retrieve-detailed-endpoint-information for parameter description.

Parameter Type Default value
host string Required
s string Required
fromCache boolean false

Returns an Endpoint object (see https://github.com/ssllabs/ssllabs-scan/blob/master/ssllabs-api-docs.md#endpoint).

Custom API calls

Use sendApiRequest() method to create custom API calls.

Parameter Type Default value
apiCall string Required
parameters array
$api->sendApiRequest('apiCallName', array('p1' => 'p1_value', 'p2' => 'p2_value'));

getReturnJsonObjects()

Getter for returnJsonObjects

setReturnJsonObjects()

Setter for returnJsonObjects

Parameter Type Default value
returnJsonObjects boolean Required

Example output (as JSON strings)

Get API information

$api->fetchApiInfo();
{
    "engineVersion": "1.15.1",
    "criteriaVersion": "2009i",
    "clientMaxAssessments": 25,
    "maxAssessments": 25,
    "currentAssessments": 0,
    "messages": [
        "This assessment service is provided free of charge by Qualys SSL Labs, subject to our terms and conditions: https://www.ssllabs.com/about/terms.html"
    ]
}

Get host information

$api->fetchHostInformation('https://www.google.de');
{
    "host": "https://www.google.de",
    "port": 443,
    "protocol": "HTTP",
    "isPublic": false,
    "status": "READY",
    "startTime": 1427195976527,
    "testTime": 1427196284525,
    "engineVersion": "1.15.1",
    "criteriaVersion": "2009i",
    "endpoints": [
        {
            "ipAddress": "74.125.239.119",
            "serverName": "nuq05s01-in-f23.1e100.net",
            "statusMessage": "Ready",
            "grade": "B",
            "hasWarnings": false,
            "isExceptional": false,
            "progress": 100,
            "duration": 77376,
            "eta": 1610,
            "delegation": 3
        },
        {
            "ipAddress": "74.125.239.120",
            "serverName": "nuq05s01-in-f24.1e100.net",
            "statusMessage": "Ready",
            "grade": "B",
            "hasWarnings": false,
            "isExceptional": false,
            "progress": 100,
            "duration": 76386,
            "eta": 1609,
            "delegation": 3
        },
        {
            "ipAddress": "74.125.239.127",
            "serverName": "nuq05s01-in-f31.1e100.net",
            "statusMessage": "Ready",
            "grade": "B",
            "hasWarnings": false,
            "isExceptional": false,
            "progress": 100,
            "duration": 76937,
            "eta": 1608,
            "delegation": 3
        },
        {
            "ipAddress": "74.125.239.111",
            "serverName": "nuq05s01-in-f15.1e100.net",
            "statusMessage": "Ready",
            "grade": "B",
            "hasWarnings": false,
            "isExceptional": false,
            "progress": 100,
            "duration": 77171,
            "eta": 1606,
            "delegation": 3
        }
    ]
}

Get endpoint information

$api->fetchEndpointData('https://www.google.de', '74.125.239.111', true);

(just an except of the entire JSON output)

{
    "ipAddress": "74.125.239.111",
    "serverName": "nuq05s01-in-f15.1e100.net",
    "statusMessage": "Ready",
    "grade": "B",
    "hasWarnings": false,
    "isExceptional": false,
    "progress": 100,
    "duration": 77171,
    "eta": 1609,
    "delegation": 3,
    "details": {
        "hostStartTime": 1427195976527,
        "key": {},
        "cert": {},
        "chain": {},
        "protocols": [],
        "suites": {},
        "serverSignature": "gws",
        "prefixDelegation": true,
        "nonPrefixDelegation": true,
        "vulnBeast": false,
        "renegSupport": 2,
        "sessionResumption": 1,
        "compressionMethods": 0,
        "supportsNpn": true,
        "npnProtocols": "h2-15 h2-14 spdy/3.1 spdy/3 http/1.1",
        "sessionTickets": 1,
        "ocspStapling": false,
        "sniRequired": false,
        "httpStatusCode": 200,
        "supportsRc4": true,
        "forwardSecrecy": 2,
        "rc4WithModern": true,
        "sims": {},
        "heartbleed": false,
        "heartbeat": false,
        "openSslCcs": 1,
        "poodleTls": 1,
        "fallbackScsv": true
    }
}

Terms and Conditions

As this is just a PHP library for SSL Labs API please refer to SSL Labs terms and conditions at https://www.ssllabs.com/about/terms.html