Interrogate SSL Certificate Configuration Efficacy via 'ssllabs' API
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

53 lines
3.0 KiB

#' Interrogate SSL Certificate Configuration Efficacy via 'ssllabs' API
#'
#' SSL Labs APIs are provided free of charge, subject to our terms and conditions:
#' \url{https://www.ssllabs.com/about/terms.html}. The spirit of the license is that the
#' APIs are made available so that system operators can test their own infrastructure.
#' Please read the actual terms and conditions, which are more involved and cover things
#' such as integrating with open source projects, and so on. For example, it's important
#' (for reasons of privacy, compliance, etc.) for end users to understand that assessments
#' are carried out by Qualys's servers, not locally.
#'
#' Commercial use is generally not allowed, except with an explicit permission from Qualys.
#' That said, we're usually happy to support good causes, even uses by commercial
#' organizations that help improve the security of their customers. If you're a CA, CDN,
#' hosting company, domain name registrar, we're happy for you to use our APIs (but you
#' still have to get in touch with us before you begin).
#'
#' Please note the following:
#'
#' Server assessments usually take at least 60 seconds. (They are intentionally slow, to
#' avoid harming servers.) Thus, there is no need to poll for the results very often. In
#' fact, polling too often slows down the service for everyone. It's best to use variable
#' polling: 5 seconds until an assessment gets under way (status changes to IN_PROGRESS),
#' then 10 seconds until it completes.
#'
#' Keep down the number of concurrent assessments to a minimum. If you're not in a hurry,
#' test only one hostname at a time.
#'
#' SSL Labs may limit your usage of the API, by enforcing a limit on concurrent
#' assessments, and the overall number of assessments performed in a time period. If that
#' happens, we will respond with 429 (Too Many Requests) to API calls that wish to
#' initiate new assessments. Your ability to follow previously initiated assessments, or
#' retrieve assessment results from the cache, will not be impacted. If you receive a 429
#' response, reduce the number of concurrent assessments and check that you're not
#' submitting new assessments at a rate higher than allowed.
#'
#' If the server is overloaded (a condition that is not a result of the client's
#' behaviour), the 529 status code will be used instead. This is not a situation we wish
#' to be in. If you encounter it, take a break and come back later.
#'
#' All successful API calls contain response headers X-Max-Assessments and
#' X-Current-Assessments. They can be used to calculate how many new assessments can be
#' submitted. It is recommended that clients update their internal state after each
#' complete response.
#'
#' @name ssllabs
#' @docType package
#' @keywords internal
#' @author Bob Rudis (bob@@rud.is)
#' @references \url{https://github.com/ssllabs/ssllabs-scan/blob/stable/ssllabs-api-docs-v3.md}
#' @importFrom httr stop_for_status GET user_agent content
#' @importFrom jsonlite fromJSON
#' @importFrom openssl read_cert
NULL