pax_global_header00006660000000000000000000000064141134331270014511gustar00rootroot0000000000000052 comment=57a7a9f13f1ef1f3ac60ceef6e1d35e769902cd2 acme-client-2.0.9/000077500000000000000000000000001411343312700137025ustar00rootroot00000000000000acme-client-2.0.9/.github/000077500000000000000000000000001411343312700152425ustar00rootroot00000000000000acme-client-2.0.9/.github/workflows/000077500000000000000000000000001411343312700172775ustar00rootroot00000000000000acme-client-2.0.9/.github/workflows/rubocop.yml000066400000000000000000000007661411343312700215040ustar00rootroot00000000000000name: Lint on: push: branches: [ master ] pull_request: branches: [ master ] jobs: rubocop: runs-on: ubuntu-latest strategy: matrix: ruby-version: ['3.0'] steps: - uses: actions/checkout@v2 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby-version }} bundler-cache: true # runs 'bundle install' and caches installed gems automatically - name: Run tests run: bundle exec rake rubocop acme-client-2.0.9/.github/workflows/test.yml000066400000000000000000000011531411343312700210010ustar00rootroot00000000000000name: CI on: push: branches: [ master ] pull_request: branches: [ master ] jobs: test: runs-on: ubuntu-latest strategy: matrix: ruby-version: ['2.6', '2.7', '3.0'] faraday-version: ['~> 0.17.3', '~> 1.7'] env: FARADAY_VERSION: ${{ matrix.faraday-version }} steps: - uses: actions/checkout@v2 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby-version }} bundler-cache: true # runs 'bundle install' and caches installed gems automatically - name: Run tests run: bundle exec rake spec acme-client-2.0.9/.gitignore000066400000000000000000000001741411343312700156740ustar00rootroot00000000000000/.bundle/ /.yardoc /Gemfile.lock /_yardoc/ /coverage/ /doc/ /pkg/ /spec/reports/ /tmp/ /vendor/bundle /.idea/ .tool-versionsacme-client-2.0.9/.rspec000066400000000000000000000000541411343312700150160ustar00rootroot00000000000000--format documentation --color --order rand acme-client-2.0.9/.rubocop.yml000066400000000000000000000036361411343312700161640ustar00rootroot00000000000000AllCops: TargetRubyVersion: 2.1 Exclude: - 'bin/*' - 'vendor/**/*' Rails: Enabled: false Layout/AlignParameters: EnforcedStyle: with_fixed_indentation Layout/ElseAlignment: Enabled: false Layout/FirstParameterIndentation: EnforcedStyle: consistent Layout/IndentationWidth: Enabled: false Layout/MultilineOperationIndentation: Enabled: false Layout/SpaceInsideBlockBraces: Enabled: false Lint/AmbiguousOperator: Enabled: false Lint/AssignmentInCondition: Enabled: false Lint/EndAlignment: Enabled: false Lint/UnusedMethodArgument: AllowUnusedKeywordArguments: true Metrics/AbcSize: Enabled: false Metrics/BlockLength: Enabled: false Metrics/ClassLength: Enabled: false Metrics/CyclomaticComplexity: Enabled: false Metrics/LineLength: Max: 140 Metrics/MethodLength: Max: 15 Enabled: false Metrics/ParameterLists: Max: 5 CountKeywordArgs: false Metrics/PerceivedComplexity: Enabled: false Security/JSONLoad: Enabled: false Style/AccessorMethodName: Enabled: false Style/Alias: Enabled: false Style/BlockDelimiters: EnforcedStyle: semantic Style/ClassAndModuleChildren: Enabled: false Style/Documentation: Enabled: false Style/DoubleNegation: Enabled: false Style/FileName: Exclude: - 'lib/acme-client.rb' Style/GlobalVars: Enabled: false Style/GuardClause: Enabled: false Style/IfUnlessModifier: Enabled: false Style/Lambda: Enabled: false Style/ModuleFunction: Enabled: false Style/MultilineBlockChain: Enabled: false Style/MultipleComparison: Enabled: false Style/MutableConstant: Enabled: false Style/ParallelAssignment: Enabled: false Style/PercentLiteralDelimiters: Enabled: false Style/SignalException: EnforcedStyle: only_raise Style/SymbolArray: Enabled: false Style/StringLiterals: Enabled: single_quotes Style/TrailingCommaInArguments: Enabled: false Style/TrivialAccessors: AllowPredicates: true acme-client-2.0.9/CHANGELOG.md000066400000000000000000000076271411343312700155270ustar00rootroot00000000000000## `2.0.9` * Support for Ruby 3.0 and Faraday 0.17.x * Raise when directory is rate limited ## `2.0.8` * Add support for the keyChange endpoint https://tools.ietf.org/html/rfc8555#section-7.3.5 ## `2.0.7` * Add support for alternate certificate chain * Change `Link` headers parsing to return array of value. This add support multiple entries at the same `rel` ## `2.0.6` * Allow Faraday up to `< 2.0` ## `2.0.5` * Use post-as-get * Remove deprecated keyAuthorization ## `2.0.4` * Add an option to retry bad nonce errors ## `2.0.3` * Do not try to set the body on GET request ## `2.0.2` * Fix constant lookup on InvalidDirectory * Forward connection options when fetching nonce * Fix splats without parenthesis warning ## `2.0.1` * Properly require URI ## `2.0.0` * Release of the `ACMEv2` branch ## `1.0.0` * Development for `ACMEv1` moved into `1.0.x` ## `0.6.3` * Handle Faraday::ConnectionFailed errors as Timeout error. ## `0.6.2` * Do not cache error type ## `0.6.1` * Fix typo in ECDSA curves ## `0.6.0` * Support external account keys ## `0.5.5` * Release script fixes. ## `0.5.4` * Enable ECDSA certificates ## `0.5.3` * Build release script ## `0.5.2` * Fix acme error names * ASN1 parsing improvements ## `0.5.1` * Set serial number of self-signed certificate ## `0.5.0` * Allow access to `Acme::Client#endpoint` and `Acme::Client#directory_uri` * Add `Acme::Client#fetch_authorization` * Setup cyclic dependency between challenges and their authorization for easier access of either with the other. * Drop `Acme::Client#challenge_from_hash` and `Acme::Client::Resources::Challenges::Base#to_h` in favor of the new API. * Delegate `Acme::Client::Resources::Challenges::Base#verify_status` to `Acme::Client::Resources::Authorization#verify_status` and make it update existing challenge objects. This makes it so that whichever is called, the correct status is reflected everywhere. * Add `Authorization#verify_status` - Recent versions of boulder will no longer process a challenge if the associated authorization is already valid, that is another challenge was previously solved. This means we need to allow people to poll on the authorizations status rather than the challenge status so they don't have to poll on the status of all challenges of an authorization all the time. See https://community.letsencrypt.org/t/upcoming-change-valid-authz-reuse/16982 and https://github.com/letsencrypt/boulder/issues/2057 ## `0.4.1` * Set the X509 version of the self-signed certificate * Fix requiring of time standard library ## `0.4.0` * Drop json-jwt dependency, implement JWS on our own * Drop ActiveSupport dependency ## `0.3.7` * Simplify internal `require` statements * Fix usage of json-jwt return value * Remove usage of deprecated `qualified_const_defined?` * Add user agent to upstream calls * Fix gem requiring * Set CSR version ## `0.3.6` * Handle non-json errors better ## `0.3.5` * Handle non protocol related server error ## `0.3.4` * Make `Acme::Client#challenge_from_hash` more strict with the arguments it receives ## `0.3.3` * Add new `unsupportedIdentifier` error from acme protocol ## `0.3.2` * Adds `rejectedIdentifier` error * Adds `RateLimited` error class * Clean up gem loading * Make client connection options configurable * Add URL to certificate ## `0.3.1` * Add ability to serialize challenges ## `0.3.0` * Use ISO8601 format for time parsing * Expose the authorization expiration timestamp. The ACME server returns an optional timestamp that signifies the expiration date of the domain authorization challenge. The time format is RFC3339 and can be parsed by Time#parse. See: https://letsencrypt.github.io/acme-spec/ Section 5.3 - expires * Update dns-01 record content to comply with ACME spec * Fix `SelfSignCertificate#default_not_before` ## `0.2.4` * Support tls-sni-01 ## `0.2.3` * Support certificate revocation * Move everything under the `Acme::Client` namespace * Improved errors acme-client-2.0.9/Gemfile000066400000000000000000000005221411343312700151740ustar00rootroot00000000000000source 'https://rubygems.org' gemspec if faraday_version = ENV['FARADAY_VERSION'] gem 'faraday', faraday_version end group :development, :test do gem 'pry' gem 'rubocop', '~> 0.49.0' gem 'ruby-prof', require: false if Gem::Version.new(RUBY_VERSION) <= Gem::Version.new('2.2.2') gem 'activesupport', '~> 4.2.6' end end acme-client-2.0.9/LICENSE.txt000066400000000000000000000020721411343312700155260ustar00rootroot00000000000000The MIT License (MIT) Copyright (c) 2015 Charles Barbier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. acme-client-2.0.9/README.md000066400000000000000000000230651411343312700151670ustar00rootroot00000000000000# Acme::Client [![Build Status](https://travis-ci.org/unixcharles/acme-client.svg?branch=master)](https://travis-ci.org/unixcharles/acme-client) `acme-client` is a client implementation of the ACMEv2 / [RFC 8555](https://tools.ietf.org/html/rfc8555) protocol in Ruby. You can find the ACME reference implementations of the [server](https://github.com/letsencrypt/boulder) in Go and the [client](https://github.com/certbot/certbot) in Python. ACME is part of the [Letsencrypt](https://letsencrypt.org/) project, which goal is to provide free SSL/TLS certificates with automation of the acquiring and renewal process. You can find ACMEv1 compatible client in the [acme-v1](https://github.com/unixcharles/acme-client/tree/acme-v1) branch. ## Installation Via RubyGems: $ gem install acme-client Or add it to a Gemfile: ```ruby gem 'acme-client' ``` ## Usage - [Acme::Client](#acmeclient) - [Installation](#installation) - [Usage](#usage) - [Setting up a client](#setting-up-a-client) - [Account management](#account-management) - [Obtaining a certificate](#obtaining-a-certificate) - [Ordering a certificate](#ordering-a-certificate) - [Preparing for HTTP challenge](#preparing-for-http-challenge) - [Preparing for DNS challenge](#preparing-for-dns-challenge) - [Requesting a challenge verification](#requesting-a-challenge-verification) - [Downloading a certificate](#downloading-a-certificate) - [Ordering an alternative certificate](#ordering-an-alternative-certificate) - [Extra](#extra) - [Certificate revokation](#certificate-revokation) - [Certificate renewal](#certificate-renewal) - [Not implemented](#not-implemented) - [Requirements](#requirements) - [Development](#development) - [Pull request?](#pull-request) - [License](#license) ## Setting up a client The client is initialized with a private key and the directory of your ACME provider. LetsEncrypt's `directory` is `https://acme-v02.api.letsencrypt.org/directory`. They also have a staging endpoint at `https://acme-staging-v02.api.letsencrypt.org/directory`. `acme-ruby` expects `OpenSSL::PKey::RSA` or `OpenSSL::PKey::EC` You can generate one in Ruby using OpenSSL. ```ruby require 'openssl' private_key = OpenSSL::PKey::RSA.new(4096) ``` Or load one from a PEM file ```ruby require 'openssl' OpenSSL::PKey::RSA.new(File.read('/path/to/private_key.pem')) ``` See [RSA](https://ruby.github.io/openssl/OpenSSL/PKey/RSA.html) and [EC](https://ruby.github.io/openssl/OpenSSL/PKey/EC.html) for documentation. ```ruby client = Acme::Client.new(private_key: private_key, directory: 'https://acme-staging-v02.api.letsencrypt.org/directory') ``` If your account is already registered, you can save some API calls by passing your key ID directly. This will avoid an unnecessary API call to retrieve it from your private key. ```ruby client = Acme::Client.new(private_key: private_key, directory: 'https://acme-staging-v02.api.letsencrypt.org/directory', kid: 'https://example.com/acme/acct/1') ``` ## Account management Accounts are tied to a private key. Before being allowed to create orders, the account must be registered and the ToS accepted using the private key. The account will be assigned a key ID. ```ruby client = Acme::Client.new(private_key: private_key, directory: 'https://acme-staging-v02.api.letsencrypt.org/directory') account = client.new_account(contact: 'mailto:info@example.com', terms_of_service_agreed: true) ``` After the registration you can retrieve the account key indentifier (kid). ```ruby client = Acme::Client.new(private_key: private_key, directory: 'https://acme-staging-v02.api.letsencrypt.org/directory') account = client.new_account(contact: 'mailto:info@example.com', terms_of_service_agreed: true) account.kid # => ``` If you already have an existing account (for example one created in ACME v1) please note that unless the `kid` is provided at initialization, the client will lazy load the `kid` by doing a `POST` to `newAccount` whenever the `kid` is required. Therefore, you can easily get your `kid` for an existing account and (if needed) store it for reuse: ```ruby client = Acme::Client.new(private_key: private_key, directory: 'https://acme-staging-v02.api.letsencrypt.org/directory') # kid is not set, therefore a call to newAccount is made to lazy-initialize the kid client.kid => "https://acme-staging-v02.api.letsencrypt.org/acme/acct/000000" ``` ## Obtaining a certificate ### Ordering a certificate To order a new certificate, the client must provide a list of identifiers. The returned order will contain a list of `Authorization` that need to be completed in other to finalize the order, generally one per identifier. Each authorization contains multiple challenges, typically a `dns-01` and a `http-01` challenge. The applicant is only required to complete one of the challenges. You can access the challenge you wish to complete using the `#dns` or `#http` method. ```ruby order = client.new_order(identifiers: ['example.com']) authorization = order.authorizations.first challenge = authorization.http ``` ### Preparing for HTTP challenge To complete the HTTP challenge, you must return a file using HTTP. The path follows the following format: > .well-known/acme-challenge/#{token} And the file content is the key authorization. The HTTP01 object has utility methods to generate them. ```ruby > http_challenge.content_type # => 'text/plain' > http_challenge.file_content # => example_token.TO1xJ0UDgfQ8WY5zT3txynup87UU3PhcDEIcuPyw4QU > http_challenge.filename # => '.well-known/acme-challenge/example_token' > http_challenge.token # => 'example_token' ``` For test purposes you can just save the challenge file and use Ruby to serve it: ```bash ruby -run -e httpd public -p 8080 --bind-address 0.0.0.0 ``` ### Preparing for DNS challenge To complete the DNS challenge, you must set a DNS record to prove that you control the domain. The DNS01 object has utility methods to generate them. ```ruby dns_challenge.record_name # => '_acme-challenge' dns_challenge.record_type # => 'TXT' dns_challenge.record_content # => 'HRV3PS5sRDyV-ous4HJk4z24s5JjmUTjcCaUjFt28-8' ``` ### Requesting a challenge verification Once you are ready to complete the challenge, you can request the server perform the verification. ```ruby challenge.request_validation ``` The validation is performed asynchronously and can take some time to be performed by the server. You can poll until its status changes. ```ruby while challenge.status == 'pending' sleep(2) challenge.reload end challenge.status # => 'valid' ``` ### Downloading a certificate Once all required authorizations have been validated through challenges, the order can be finalized using a CSR ([Certificate Signing Request](https://en.wikipedia.org/wiki/Certificate_signing_request)). A CSR can be slightly tricky to generate using OpenSSL from Ruby standard library. `acme-client` provide a utility class `CertificateRequest` to help with that. You'll need to use a different private key for the certificate request than the one you use for your `Acme::Client` account. Certificate generation happens asynchronously. You may need to poll. ```ruby csr = Acme::Client::CertificateRequest.new(private_key: a_different_private_key, subject: { common_name: 'example.com' }) order.finalize(csr: csr) while order.status == 'processing' sleep(1) order.reload end order.certificate # => PEM-formatted certificate ``` ### Ordering an alternative certificate Let's Encrypt is [transitioning](https://letsencrypt.org/2019/04/15/transitioning-to-isrg-root.html) to use a new intermediate certificate. Starting January 11, 2021 new certificates will be signed by their own intermediate. To ease the transition on clients Let's Encrypt will continue signing an alternative version of the certificate using the old, cross-signed intermediate until September 29, 2021. In order to utilize an alternative certificate the `Order#certificate` method accepts a `force_chain` keyword argument, which takes the issuer name of the intermediate certificate. For example, to download the cross-signed certificate after January 11, 2021, call `Order#certificate` as follows: ```ruby begin order.certificate(force_chain: 'DST Root CA X3') rescue Acme::Client::Error::ForcedChainNotFound order.certificate end ``` Note: if the specified forced chain doesn't match an existing alternative certificate the method will raise an `Acme::Client::Error::ForcedChainNotFound` error. Learn more about the original Github issue for this client [here](https://github.com/unixcharles/acme-client/issues/186), information from Let's Encrypt [here](https://letsencrypt.org/2019/04/15/transitioning-to-isrg-root.html), and cross-signing [here](https://letsencrypt.org/certificates/#cross-signing). ## Extra ### Certificate revokation To revoke a certificate you can call `#revoke` with the certificate. ```ruby client.revoke(certificate: certificate) ``` ### Certificate renewal There is no renewal process, just create a new order. ### Account Key Roll-over To change the key used for an account you can call `#account_key_change` with the new private key or jwk. ```ruby require 'openssl' new_private_key = OpenSSL::PKey::RSA.new(4096) client.account_key_change(private_key: new_private_key) ``` ## Requirements Ruby >= 2.1 ## Development All the tests use VCR to mock the interaction with the server. If you need to record new interaction you can specify the directory URL with the `ACME_DIRECTORY_URL` environment variable. ``` ACME_DIRECTORY_URL=https://acme-staging-v02.api.letsencrypt.org/directory rspec ``` ## Pull request? Yes. ## License [MIT License](http://opensource.org/licenses/MIT) acme-client-2.0.9/Rakefile000066400000000000000000000002611411343312700153460ustar00rootroot00000000000000require 'bundler/gem_tasks' require 'rspec/core/rake_task' RSpec::Core::RakeTask.new(:spec) require 'rubocop/rake_task' RuboCop::RakeTask.new task default: [:spec, :rubocop] acme-client-2.0.9/acme-client.gemspec000066400000000000000000000022301411343312700174250ustar00rootroot00000000000000lib = File.expand_path('../lib', __FILE__) $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) require 'acme/client/version' Gem::Specification.new do |spec| spec.name = 'acme-client' spec.version = Acme::Client::VERSION spec.authors = ['Charles Barbier'] spec.email = ['unixcharles@gmail.com'] spec.summary = 'Client for the ACME protocol.' spec.homepage = 'http://github.com/unixcharles/acme-client' spec.license = 'MIT' spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) } spec.require_paths = ['lib'] spec.required_ruby_version = '>= 2.1.0' spec.add_development_dependency 'bundler', '>= 1.17.3' if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.2') spec.add_development_dependency 'rake', '>= 12.0' else spec.add_development_dependency 'rake', '~> 13.0' end spec.add_development_dependency 'rspec', '~> 3.9' spec.add_development_dependency 'vcr', '~> 2.9' spec.add_development_dependency 'webmock', '~> 3.8' spec.add_development_dependency 'webrick' spec.add_runtime_dependency 'faraday', '>= 0.17', '< 2.0.0' end acme-client-2.0.9/bin/000077500000000000000000000000001411343312700144525ustar00rootroot00000000000000acme-client-2.0.9/bin/console000077500000000000000000000001341411343312700160400ustar00rootroot00000000000000#!/usr/bin/env ruby require 'bundler/setup' require 'acme-client' require 'pry' Pry.start acme-client-2.0.9/bin/release000077500000000000000000000007601411343312700160230ustar00rootroot00000000000000#!/usr/bin/env ruby require 'bundler/setup' require 'acme-client' version = Acme::Client::VERSION def `(command) puts super(command) if $?.exitstatus > 0 fail("failed at: #{command}") end end `git add CHANGELOG.md` `git add lib/acme/client/version.rb` `git commit -m "bump to #{version}"` `git pull --rebase origin master` `git tag 'v#{version}'` `git push --tags origin master` `gem build acme-client.gemspec` `gem push acme-client-#{version}.gem` `rm acme-client-#{version}.gem` acme-client-2.0.9/bin/setup000077500000000000000000000000721411343312700155370ustar00rootroot00000000000000#!/bin/bash set -euo pipefail IFS=$'\n\t' bundle install acme-client-2.0.9/lib/000077500000000000000000000000001411343312700144505ustar00rootroot00000000000000acme-client-2.0.9/lib/acme-client.rb000066400000000000000000000000261411343312700171540ustar00rootroot00000000000000require 'acme/client' acme-client-2.0.9/lib/acme/000077500000000000000000000000001411343312700153555ustar00rootroot00000000000000acme-client-2.0.9/lib/acme/client.rb000066400000000000000000000242461411343312700171700ustar00rootroot00000000000000# frozen_string_literal: true require 'faraday' require 'json' require 'openssl' require 'digest' require 'forwardable' require 'base64' require 'time' require 'uri' module Acme; end class Acme::Client; end require 'acme/client/version' require 'acme/client/certificate_request' require 'acme/client/self_sign_certificate' require 'acme/client/resources' require 'acme/client/faraday_middleware' require 'acme/client/jwk' require 'acme/client/error' require 'acme/client/util' require 'acme/client/chain_identifier' class Acme::Client DEFAULT_DIRECTORY = 'http://127.0.0.1:4000/directory'.freeze repo_url = 'https://github.com/unixcharles/acme-client' USER_AGENT = "Acme::Client v#{Acme::Client::VERSION} (#{repo_url})".freeze CONTENT_TYPES = { pem: 'application/pem-certificate-chain' } def initialize(jwk: nil, kid: nil, private_key: nil, directory: DEFAULT_DIRECTORY, connection_options: {}, bad_nonce_retry: 0) if jwk.nil? && private_key.nil? raise ArgumentError, 'must specify jwk or private_key' end @jwk = if jwk jwk else Acme::Client::JWK.from_private_key(private_key) end @kid, @connection_options = kid, connection_options @bad_nonce_retry = bad_nonce_retry @directory = Acme::Client::Resources::Directory.new(URI(directory), @connection_options) @nonces ||= [] end attr_reader :jwk, :nonces def new_account(contact:, terms_of_service_agreed: nil) payload = { contact: Array(contact) } if terms_of_service_agreed payload[:termsOfServiceAgreed] = terms_of_service_agreed end response = post(endpoint_for(:new_account), payload: payload, mode: :jws) @kid = response.headers.fetch(:location) if response.body.nil? || response.body.empty? account else arguments = attributes_from_account_response(response) Acme::Client::Resources::Account.new(self, url: @kid, **arguments) end end def account_update(contact: nil, terms_of_service_agreed: nil) payload = {} payload[:contact] = Array(contact) if contact payload[:termsOfServiceAgreed] = terms_of_service_agreed if terms_of_service_agreed response = post(kid, payload: payload) arguments = attributes_from_account_response(response) Acme::Client::Resources::Account.new(self, url: kid, **arguments) end def account_deactivate response = post(kid, payload: { status: 'deactivated' }) arguments = attributes_from_account_response(response) Acme::Client::Resources::Account.new(self, url: kid, **arguments) end def account_key_change(new_private_key: nil, new_jwk: nil) if new_private_key.nil? && new_jwk.nil? raise ArgumentError, 'must specify new_jwk or new_private_key' end old_jwk = jwk new_jwk ||= Acme::Client::JWK.from_private_key(new_private_key) inner_payload_header = { url: endpoint_for(:key_change) } inner_payload = { account: kid, oldKey: old_jwk.to_h } payload = JSON.parse(new_jwk.jws(header: inner_payload_header, payload: inner_payload)) response = post(endpoint_for(:key_change), payload: payload, mode: :kid) arguments = attributes_from_account_response(response) @jwk = new_jwk Acme::Client::Resources::Account.new(self, url: kid, **arguments) end def account @kid ||= begin response = post(endpoint_for(:new_account), payload: { onlyReturnExisting: true }, mode: :jwk) response.headers.fetch(:location) end response = post_as_get(@kid) arguments = attributes_from_account_response(response) Acme::Client::Resources::Account.new(self, url: @kid, **arguments) end def kid @kid ||= account.kid end def new_order(identifiers:, not_before: nil, not_after: nil) payload = {} payload['identifiers'] = prepare_order_identifiers(identifiers) payload['notBefore'] = not_before if not_before payload['notAfter'] = not_after if not_after response = post(endpoint_for(:new_order), payload: payload) arguments = attributes_from_order_response(response) Acme::Client::Resources::Order.new(self, **arguments) end def order(url:) response = post_as_get(url) arguments = attributes_from_order_response(response) Acme::Client::Resources::Order.new(self, **arguments.merge(url: url)) end def finalize(url:, csr:) unless csr.respond_to?(:to_der) raise ArgumentError, 'csr must respond to `#to_der`' end base64_der_csr = Acme::Client::Util.urlsafe_base64(csr.to_der) response = post(url, payload: { csr: base64_der_csr }) arguments = attributes_from_order_response(response) Acme::Client::Resources::Order.new(self, **arguments) end def certificate(url:, force_chain: nil) response = download(url, format: :pem) pem = response.body return pem if force_chain.nil? return pem if ChainIdentifier.new(pem).match_name?(force_chain) alternative_urls = Array(response.headers.dig('link', 'alternate')) alternative_urls.each do |alternate_url| response = download(alternate_url, format: :pem) pem = response.body if ChainIdentifier.new(pem).match_name?(force_chain) return pem end end raise Acme::Client::Error::ForcedChainNotFound, "Could not find any matching chain for `#{force_chain}`" end def authorization(url:) response = post_as_get(url) arguments = attributes_from_authorization_response(response) Acme::Client::Resources::Authorization.new(self, url: url, **arguments) end def deactivate_authorization(url:) response = post(url, payload: { status: 'deactivated' }) arguments = attributes_from_authorization_response(response) Acme::Client::Resources::Authorization.new(self, url: url, **arguments) end def challenge(url:) response = post_as_get(url) arguments = attributes_from_challenge_response(response) Acme::Client::Resources::Challenges.new(self, **arguments) end def request_challenge_validation(url:, key_authorization: nil) response = post(url, payload: {}) arguments = attributes_from_challenge_response(response) Acme::Client::Resources::Challenges.new(self, **arguments) end def revoke(certificate:, reason: nil) der_certificate = if certificate.respond_to?(:to_der) certificate.to_der else OpenSSL::X509::Certificate.new(certificate).to_der end base64_der_certificate = Acme::Client::Util.urlsafe_base64(der_certificate) payload = { certificate: base64_der_certificate } payload[:reason] = reason unless reason.nil? response = post(endpoint_for(:revoke_certificate), payload: payload) response.success? end def get_nonce connection = new_connection(endpoint: endpoint_for(:new_nonce)) response = connection.head(nil, nil, 'User-Agent' => USER_AGENT) nonces << response.headers['replay-nonce'] true end def meta @directory.meta end def terms_of_service @directory.terms_of_service end def website @directory.website end def caa_identities @directory.caa_identities end def external_account_required @directory.external_account_required end private def prepare_order_identifiers(identifiers) if identifiers.is_a?(Hash) [identifiers] else Array(identifiers).map do |identifier| if identifier.is_a?(String) { type: 'dns', value: identifier } else identifier end end end end def attributes_from_account_response(response) extract_attributes( response.body, :status, [:term_of_service, 'termsOfServiceAgreed'], :contact ) end def attributes_from_order_response(response) attributes = extract_attributes( response.body, :status, :expires, [:finalize_url, 'finalize'], [:authorization_urls, 'authorizations'], [:certificate_url, 'certificate'], :identifiers ) attributes[:url] = response.headers[:location] if response.headers[:location] attributes end def attributes_from_authorization_response(response) extract_attributes(response.body, :identifier, :status, :expires, :challenges, :wildcard) end def attributes_from_challenge_response(response) extract_attributes(response.body, :status, :url, :token, :type, :error) end def extract_attributes(input, *attributes) attributes .map {|fields| Array(fields) } .each_with_object({}) { |(key, field), hash| field ||= key.to_s hash[key] = input[field] } end def post(url, payload: {}, mode: :kid) connection = connection_for(url: url, mode: mode) connection.post(url, payload) end def post_as_get(url, mode: :kid) connection = connection_for(url: url, mode: mode) connection.post(url, nil) end def get(url, mode: :kid) connection = connection_for(url: url, mode: mode) connection.get(url) end def download(url, format:) connection = connection_for(url: url, mode: :kid) connection.post do |request| request.url(url) request.headers['Accept'] = CONTENT_TYPES.fetch(format) end end def connection_for(url:, mode:) uri = URI(url) endpoint = "#{uri.scheme}://#{uri.hostname}:#{uri.port}" @connections ||= {} @connections[mode] ||= {} @connections[mode][endpoint] ||= new_acme_connection(endpoint: endpoint, mode: mode) end def new_acme_connection(endpoint:, mode:) new_connection(endpoint: endpoint) do |configuration| configuration.use Acme::Client::FaradayMiddleware, client: self, mode: mode end end def new_connection(endpoint:) Faraday.new(endpoint, **@connection_options) do |configuration| if @bad_nonce_retry > 0 configuration.request(:retry, max: @bad_nonce_retry, methods: Faraday::Connection::METHODS, exceptions: [Acme::Client::Error::BadNonce]) end yield(configuration) if block_given? configuration.adapter Faraday.default_adapter end end def fetch_chain(response, limit = 10) links = response.headers['link'] if limit.zero? || links.nil? || links['up'].nil? [] else issuer = get(links['up']) [OpenSSL::X509::Certificate.new(issuer.body), *fetch_chain(issuer, limit - 1)] end end def endpoint_for(key) @directory.endpoint_for(key) end end acme-client-2.0.9/lib/acme/client/000077500000000000000000000000001411343312700166335ustar00rootroot00000000000000acme-client-2.0.9/lib/acme/client/certificate_request.rb000066400000000000000000000066351411343312700232240ustar00rootroot00000000000000class Acme::Client::CertificateRequest extend Forwardable DEFAULT_KEY_LENGTH = 2048 DEFAULT_DIGEST = OpenSSL::Digest::SHA256 SUBJECT_KEYS = { common_name: 'CN', country_name: 'C', organization_name: 'O', organizational_unit: 'OU', state_or_province: 'ST', locality_name: 'L' }.freeze SUBJECT_TYPES = { 'CN' => OpenSSL::ASN1::UTF8STRING, 'C' => OpenSSL::ASN1::UTF8STRING, 'O' => OpenSSL::ASN1::UTF8STRING, 'OU' => OpenSSL::ASN1::UTF8STRING, 'ST' => OpenSSL::ASN1::UTF8STRING, 'L' => OpenSSL::ASN1::UTF8STRING }.freeze attr_reader :private_key, :common_name, :names, :subject def_delegators :csr, :to_pem, :to_der def initialize(common_name: nil, names: [], private_key: generate_private_key, subject: {}, digest: DEFAULT_DIGEST.new) @digest = digest @private_key = private_key @subject = normalize_subject(subject) @common_name = common_name || @subject[SUBJECT_KEYS[:common_name]] || @subject[:common_name] @names = names.to_a.dup normalize_names @subject[SUBJECT_KEYS[:common_name]] ||= @common_name validate_subject end def csr @csr ||= generate end private def generate_private_key OpenSSL::PKey::RSA.new(DEFAULT_KEY_LENGTH) end def normalize_subject(subject) @subject = subject.each_with_object({}) do |(key, value), hash| hash[SUBJECT_KEYS.fetch(key, key)] = value.to_s end end def normalize_names if @common_name @names.unshift(@common_name) unless @names.include?(@common_name) else raise ArgumentError, 'No common name and no list of names given' if @names.empty? @common_name = @names.first end end def validate_subject validate_subject_attributes validate_subject_common_name end def validate_subject_attributes extra_keys = @subject.keys - SUBJECT_KEYS.keys - SUBJECT_KEYS.values return if extra_keys.empty? raise ArgumentError, "Unexpected subject attributes given: #{extra_keys.inspect}" end def validate_subject_common_name return if @common_name == @subject[SUBJECT_KEYS[:common_name]] raise ArgumentError, 'Conflicting common name given in arguments and subject' end def generate OpenSSL::X509::Request.new.tap do |csr| if @private_key.is_a?(OpenSSL::PKey::EC) && RbConfig::CONFIG['MAJOR'] == '2' && RbConfig::CONFIG['MINOR'].to_i < 4 # OpenSSL::PKey::EC does not respect classic PKey interface (as defined by # PKey::RSA and PKey::DSA) until ruby 2.4. # Supporting this interface needs monkey patching of OpenSSL:PKey::EC, or # subclassing it. Here, use a subclass. @private_key = ECKeyPatch.new(@private_key) end csr.public_key = @private_key csr.subject = generate_subject csr.version = 2 add_extension(csr) csr.sign @private_key, @digest end end def generate_subject OpenSSL::X509::Name.new( @subject.map {|name, value| [name, value, SUBJECT_TYPES[name]] } ) end def add_extension(csr) extension = OpenSSL::X509::ExtensionFactory.new.create_extension( 'subjectAltName', @names.map { |name| "DNS:#{name}" }.join(', '), false ) csr.add_attribute( OpenSSL::X509::Attribute.new( 'extReq', OpenSSL::ASN1::Set.new([OpenSSL::ASN1::Sequence.new([extension])]) ) ) end end require 'acme/client/certificate_request/ec_key_patch' acme-client-2.0.9/lib/acme/client/certificate_request/000077500000000000000000000000001411343312700226655ustar00rootroot00000000000000acme-client-2.0.9/lib/acme/client/certificate_request/ec_key_patch.rb000066400000000000000000000002351411343312700256300ustar00rootroot00000000000000# Class to handle bug # class Acme::Client::CertificateRequest::ECKeyPatch < OpenSSL::PKey::EC alias private? private_key? alias public? public_key? end acme-client-2.0.9/lib/acme/client/chain_identifier.rb000066400000000000000000000011471411343312700224470ustar00rootroot00000000000000class Acme::Client class ChainIdentifier def initialize(pem_certificate_chain) @pem_certificate_chain = pem_certificate_chain end def match_name?(name) issuers.any? do |issuer| issuer.include?(name) end end private def issuers x509_certificates.map(&:issuer).map(&:to_s) end def x509_certificates @x509_certificates ||= splitted_pem_certificates.map { |pem| OpenSSL::X509::Certificate.new(pem) } end def splitted_pem_certificates @pem_certificate_chain.each_line.slice_after(/END CERTIFICATE/).map(&:join) end end end acme-client-2.0.9/lib/acme/client/error.rb000066400000000000000000000050761411343312700203210ustar00rootroot00000000000000class Acme::Client::Error < StandardError class Timeout < Acme::Client::Error; end class ClientError < Acme::Client::Error; end class InvalidDirectory < ClientError; end class UnsupportedOperation < ClientError; end class UnsupportedChallengeType < ClientError; end class NotFound < ClientError; end class CertificateNotReady < ClientError; end class ForcedChainNotFound < ClientError; end class ServerError < Acme::Client::Error; end class BadCSR < ServerError; end class BadNonce < ServerError; end class BadSignatureAlgorithm < ServerError; end class InvalidContact < ServerError; end class UnsupportedContact < ServerError; end class ExternalAccountRequired < ServerError; end class AccountDoesNotExist < ServerError; end class Malformed < ServerError; end class RateLimited < ServerError; end class RejectedIdentifier < ServerError; end class ServerInternal < ServerError; end class Unauthorized < ServerError; end class UnsupportedIdentifier < ServerError; end class UserActionRequired < ServerError; end class BadRevocationReason < ServerError; end class Caa < ServerError; end class Dns < ServerError; end class Connection < ServerError; end class Tls < ServerError; end class IncorrectResponse < ServerError; end ACME_ERRORS = { 'urn:ietf:params:acme:error:badCSR' => BadCSR, 'urn:ietf:params:acme:error:badNonce' => BadNonce, 'urn:ietf:params:acme:error:badSignatureAlgorithm' => BadSignatureAlgorithm, 'urn:ietf:params:acme:error:invalidContact' => InvalidContact, 'urn:ietf:params:acme:error:unsupportedContact' => UnsupportedContact, 'urn:ietf:params:acme:error:externalAccountRequired' => ExternalAccountRequired, 'urn:ietf:params:acme:error:accountDoesNotExist' => AccountDoesNotExist, 'urn:ietf:params:acme:error:malformed' => Malformed, 'urn:ietf:params:acme:error:rateLimited' => RateLimited, 'urn:ietf:params:acme:error:rejectedIdentifier' => RejectedIdentifier, 'urn:ietf:params:acme:error:serverInternal' => ServerInternal, 'urn:ietf:params:acme:error:unauthorized' => Unauthorized, 'urn:ietf:params:acme:error:unsupportedIdentifier' => UnsupportedIdentifier, 'urn:ietf:params:acme:error:userActionRequired' => UserActionRequired, 'urn:ietf:params:acme:error:badRevocationReason' => BadRevocationReason, 'urn:ietf:params:acme:error:caa' => Caa, 'urn:ietf:params:acme:error:dns' => Dns, 'urn:ietf:params:acme:error:connection' => Connection, 'urn:ietf:params:acme:error:tls' => Tls, 'urn:ietf:params:acme:error:incorrectResponse' => IncorrectResponse } end acme-client-2.0.9/lib/acme/client/faraday_middleware.rb000066400000000000000000000044231411343312700227670ustar00rootroot00000000000000# frozen_string_literal: true class Acme::Client::FaradayMiddleware < Faraday::Middleware attr_reader :env, :response, :client CONTENT_TYPE = 'application/jose+json' def initialize(app, options) super(app) @client = options.fetch(:client) @mode = options.fetch(:mode) end def call(env) @env = env @env[:request_headers]['User-Agent'] = Acme::Client::USER_AGENT @env[:request_headers]['Content-Type'] = CONTENT_TYPE if @env.method != :get @env.body = client.jwk.jws(header: jws_header, payload: env.body) end @app.call(env).on_complete { |response_env| on_complete(response_env) } rescue Faraday::TimeoutError, Faraday::ConnectionFailed raise Acme::Client::Error::Timeout end def on_complete(env) @env = env raise_on_not_found! store_nonce env.body = decode_body env.response_headers['Link'] = decode_link_headers return if env.success? raise_on_error! end private def jws_header headers = { nonce: pop_nonce, url: env.url.to_s } headers[:kid] = client.kid if @mode == :kid headers end def raise_on_not_found! raise Acme::Client::Error::NotFound, env.url.to_s if env.status == 404 end def raise_on_error! raise error_class, error_message end def error_message if env.body.is_a? Hash env.body['detail'] else "Error message: #{env.body}" end end def error_class Acme::Client::Error::ACME_ERRORS.fetch(error_name, Acme::Client::Error) end def error_name return unless env.body.is_a?(Hash) return unless env.body.key?('type') env.body['type'] end def decode_body content_type = env.response_headers['Content-Type'].to_s if content_type.start_with?('application/json', 'application/problem+json') JSON.load(env.body) else env.body end end def decode_link_headers return unless env.response_headers.key?('Link') link_header = env.response_headers['Link'] Acme::Client::Util.decode_link_headers(link_header) end def store_nonce nonce = env.response_headers['replay-nonce'] nonces << nonce if nonce end def pop_nonce if nonces.empty? get_nonce end nonces.pop end def get_nonce client.get_nonce end def nonces client.nonces end end acme-client-2.0.9/lib/acme/client/jwk.rb000066400000000000000000000010751411343312700177560ustar00rootroot00000000000000module Acme::Client::JWK # Make a JWK from a private key. # # private_key - An OpenSSL::PKey::EC or OpenSSL::PKey::RSA instance. # # Returns a JWK::Base subclass instance. def self.from_private_key(private_key) case private_key when OpenSSL::PKey::RSA Acme::Client::JWK::RSA.new(private_key) when OpenSSL::PKey::EC Acme::Client::JWK::ECDSA.new(private_key) else raise ArgumentError, 'private_key must be EC or RSA' end end end require 'acme/client/jwk/base' require 'acme/client/jwk/rsa' require 'acme/client/jwk/ecdsa' acme-client-2.0.9/lib/acme/client/jwk/000077500000000000000000000000001411343312700174265ustar00rootroot00000000000000acme-client-2.0.9/lib/acme/client/jwk/base.rb000066400000000000000000000036651411343312700206770ustar00rootroot00000000000000class Acme::Client::JWK::Base THUMBPRINT_DIGEST = OpenSSL::Digest::SHA256 # Initialize a new JWK. # # Returns nothing. def initialize raise NotImplementedError end # Generate a JWS JSON web signature. # # header - A Hash of extra header fields to include. # payload - A Hash of payload data. # # Returns a JSON String. def jws(header: {}, payload:) header = jws_header(header) encoded_header = Acme::Client::Util.urlsafe_base64(header.to_json) encoded_payload = Acme::Client::Util.urlsafe_base64(payload.nil? ? '' : payload.to_json) signature_data = "#{encoded_header}.#{encoded_payload}" signature = sign(signature_data) encoded_signature = Acme::Client::Util.urlsafe_base64(signature) { protected: encoded_header, payload: encoded_payload, signature: encoded_signature }.to_json end # Serialize this JWK as JSON. # # Returns a JSON string. def to_json to_h.to_json end # Get this JWK as a Hash for JSON serialization. # # Returns a Hash. def to_h raise NotImplementedError end # JWK thumbprint as used for key authorization. # # Returns a String. def thumbprint Acme::Client::Util.urlsafe_base64(THUMBPRINT_DIGEST.digest(to_json)) end # Header fields for a JSON web signature. # # typ: - Value for the `typ` field. Default 'JWT'. # # Returns a Hash. def jws_header(header) jws = { typ: 'JWT', alg: jwa_alg }.merge(header) jws[:jwk] = to_h if header[:kid].nil? jws end # The name of the algorithm as needed for the `alg` member of a JWS object. # # Returns a String. def jwa_alg raise NotImplementedError end # Sign a message with the private key. # # message - A String message to sign. # # Returns a String signature. # rubocop:disable Lint/UnusedMethodArgument def sign(message) raise NotImplementedError end # rubocop:enable Lint/UnusedMethodArgument end acme-client-2.0.9/lib/acme/client/jwk/ecdsa.rb000066400000000000000000000045571411343312700210450ustar00rootroot00000000000000class Acme::Client::JWK::ECDSA < Acme::Client::JWK::Base # JWA parameters for supported OpenSSL curves. # https://tools.ietf.org/html/rfc7518#section-3.1 KNOWN_CURVES = { 'prime256v1' => { jwa_crv: 'P-256', jwa_alg: 'ES256', digest: OpenSSL::Digest::SHA256 }.freeze, 'secp384r1' => { jwa_crv: 'P-384', jwa_alg: 'ES384', digest: OpenSSL::Digest::SHA384 }.freeze, 'secp521r1' => { jwa_crv: 'P-521', jwa_alg: 'ES512', digest: OpenSSL::Digest::SHA512 }.freeze }.freeze # Instantiate a new ECDSA JWK. # # private_key - A OpenSSL::PKey::EC instance. # # Returns nothing. def initialize(private_key) unless private_key.is_a?(OpenSSL::PKey::EC) raise ArgumentError, 'private_key must be a OpenSSL::PKey::EC' end unless @curve_params = KNOWN_CURVES[private_key.group.curve_name] raise ArgumentError, 'Unknown EC curve' end @private_key = private_key end # The name of the algorithm as needed for the `alg` member of a JWS object. # # Returns a String. def jwa_alg @curve_params[:jwa_alg] end # Get this JWK as a Hash for JSON serialization. # # Returns a Hash. def to_h { crv: @curve_params[:jwa_crv], kty: 'EC', x: Acme::Client::Util.urlsafe_base64(coordinates[:x].to_s(2)), y: Acme::Client::Util.urlsafe_base64(coordinates[:y].to_s(2)) } end # Sign a message with the private key. # # message - A String message to sign. # # Returns a String signature. def sign(message) # DER encoded ASN.1 signature der = @private_key.sign(@curve_params[:digest].new, message) # ASN.1 SEQUENCE seq = OpenSSL::ASN1.decode(der) # ASN.1 INTs ints = seq.value # BigNumbers bns = ints.map(&:value) byte_size = (@private_key.group.degree + 7) / 8 # Binary R/S values r, s = bns.map { |bn| bn.to_s(2).rjust(byte_size, "\x00") } # JWS wants raw R/S concatenated. [r, s].join end private def coordinates @coordinates ||= begin hex = public_key.to_bn.to_s(16) data_len = hex.length - 2 hex_x = hex[2, data_len / 2] hex_y = hex[2 + data_len / 2, data_len / 2] { x: OpenSSL::BN.new([hex_x].pack('H*'), 2), y: OpenSSL::BN.new([hex_y].pack('H*'), 2) } end end def public_key @private_key.public_key end end acme-client-2.0.9/lib/acme/client/jwk/rsa.rb000066400000000000000000000022321411343312700205370ustar00rootroot00000000000000class Acme::Client::JWK::RSA < Acme::Client::JWK::Base # Digest algorithm to use when signing. DIGEST = OpenSSL::Digest::SHA256 # Instantiate a new RSA JWK. # # private_key - A OpenSSL::PKey::RSA instance. # # Returns nothing. def initialize(private_key) unless private_key.is_a?(OpenSSL::PKey::RSA) raise ArgumentError, 'private_key must be a OpenSSL::PKey::RSA' end @private_key = private_key end # Get this JWK as a Hash for JSON serialization. # # Returns a Hash. def to_h { e: Acme::Client::Util.urlsafe_base64(public_key.e.to_s(2)), kty: 'RSA', n: Acme::Client::Util.urlsafe_base64(public_key.n.to_s(2)) } end # Sign a message with the private key. # # message - A String message to sign. # # Returns a String signature. def sign(message) @private_key.sign(DIGEST.new, message) end # The name of the algorithm as needed for the `alg` member of a JWS object. # # Returns a String. def jwa_alg # https://tools.ietf.org/html/rfc7518#section-3.1 # RSASSA-PKCS1-v1_5 using SHA-256 'RS256' end private def public_key @private_key.public_key end end acme-client-2.0.9/lib/acme/client/resources.rb000066400000000000000000000003661411343312700211770ustar00rootroot00000000000000module Acme::Client::Resources; end require 'acme/client/resources/directory' require 'acme/client/resources/account' require 'acme/client/resources/order' require 'acme/client/resources/authorization' require 'acme/client/resources/challenges' acme-client-2.0.9/lib/acme/client/resources/000077500000000000000000000000001411343312700206455ustar00rootroot00000000000000acme-client-2.0.9/lib/acme/client/resources/account.rb000066400000000000000000000016711411343312700226330ustar00rootroot00000000000000# frozen_string_literal: true class Acme::Client::Resources::Account attr_reader :url, :status, :contact, :term_of_service, :orders_url def initialize(client, **arguments) @client = client assign_attributes(**arguments) end def kid url end def update(contact: nil, terms_of_service_agreed: nil) assign_attributes(**@client.account_update( contact: contact, terms_of_service_agreed: term_of_service ).to_h) true end def deactivate assign_attributes(**@client.account_deactivate.to_h) true end def reload assign_attributes(**@client.account.to_h) true end def to_h { url: url, term_of_service: term_of_service, status: status, contact: contact } end private def assign_attributes(url:, term_of_service:, status:, contact:) @url = url @term_of_service = term_of_service @status = status @contact = Array(contact) end end acme-client-2.0.9/lib/acme/client/resources/authorization.rb000066400000000000000000000032221411343312700240710ustar00rootroot00000000000000# frozen_string_literal: true class Acme::Client::Resources::Authorization attr_reader :url, :identifier, :domain, :expires, :status, :wildcard def initialize(client, **arguments) @client = client assign_attributes(**arguments) end def deactivate assign_attributes(**@client.deactivate_authorization(url: url).to_h) true end def reload assign_attributes(**@client.authorization(url: url).to_h) true end def challenges @challenges.map do |challenge| initialize_challenge(challenge) end end def http01 @http01 ||= challenges.find { |challenge| challenge.is_a?(Acme::Client::Resources::Challenges::HTTP01) } end alias_method :http, :http01 def dns01 @dns01 ||= challenges.find { |challenge| challenge.is_a?(Acme::Client::Resources::Challenges::DNS01) } end alias_method :dns, :dns01 def to_h { url: url, identifier: identifier, status: status, expires: expires, challenges: @challenges, wildcard: wildcard } end private def initialize_challenge(attributes) arguments = { type: attributes.fetch('type'), status: attributes.fetch('status'), url: attributes.fetch('url'), token: attributes.fetch('token'), error: attributes['error'] } Acme::Client::Resources::Challenges.new(@client, **arguments) end def assign_attributes(url:, status:, expires:, challenges:, identifier:, wildcard: false) @url = url @identifier = identifier @domain = identifier.fetch('value') @status = status @expires = expires @challenges = challenges @wildcard = wildcard end end acme-client-2.0.9/lib/acme/client/resources/challenges.rb000066400000000000000000000010661411343312700233020ustar00rootroot00000000000000# frozen_string_literal: true module Acme::Client::Resources::Challenges require 'acme/client/resources/challenges/base' require 'acme/client/resources/challenges/http01' require 'acme/client/resources/challenges/dns01' require 'acme/client/resources/challenges/unsupported_challenge' CHALLENGE_TYPES = { 'http-01' => Acme::Client::Resources::Challenges::HTTP01, 'dns-01' => Acme::Client::Resources::Challenges::DNS01 } def self.new(client, type:, **arguments) CHALLENGE_TYPES.fetch(type, Unsupported).new(client, **arguments) end end acme-client-2.0.9/lib/acme/client/resources/challenges/000077500000000000000000000000001411343312700227525ustar00rootroot00000000000000acme-client-2.0.9/lib/acme/client/resources/challenges/base.rb000066400000000000000000000016071411343312700242150ustar00rootroot00000000000000# frozen_string_literal: true class Acme::Client::Resources::Challenges::Base attr_reader :status, :url, :token, :error def initialize(client, **arguments) @client = client assign_attributes(**arguments) end def challenge_type self.class::CHALLENGE_TYPE end def key_authorization "#{token}.#{@client.jwk.thumbprint}" end def reload assign_attributes(**@client.challenge(url: url).to_h) true end def request_validation assign_attributes(**send_challenge_validation( url: url )) true end def to_h { status: status, url: url, token: token, error: error } end private def send_challenge_validation(url:) @client.request_challenge_validation( url: url ).to_h end def assign_attributes(status:, url:, token:, error: nil) @status = status @url = url @token = token @error = error end end acme-client-2.0.9/lib/acme/client/resources/challenges/dns01.rb000066400000000000000000000007021411343312700242230ustar00rootroot00000000000000# frozen_string_literal: true class Acme::Client::Resources::Challenges::DNS01 < Acme::Client::Resources::Challenges::Base CHALLENGE_TYPE = 'dns-01'.freeze RECORD_NAME = '_acme-challenge'.freeze RECORD_TYPE = 'TXT'.freeze DIGEST = OpenSSL::Digest::SHA256 def record_name RECORD_NAME end def record_type RECORD_TYPE end def record_content Acme::Client::Util.urlsafe_base64(DIGEST.digest(key_authorization)) end end acme-client-2.0.9/lib/acme/client/resources/challenges/http01.rb000066400000000000000000000005451411343312700244230ustar00rootroot00000000000000# frozen_string_literal: true class Acme::Client::Resources::Challenges::HTTP01 < Acme::Client::Resources::Challenges::Base CHALLENGE_TYPE = 'http-01'.freeze CONTENT_TYPE = 'text/plain'.freeze def content_type CONTENT_TYPE end def file_content key_authorization end def filename ".well-known/acme-challenge/#{token}" end end acme-client-2.0.9/lib/acme/client/resources/challenges/unsupported_challenge.rb000066400000000000000000000001471411343312700276730ustar00rootroot00000000000000class Acme::Client::Resources::Challenges::Unsupported < Acme::Client::Resources::Challenges::Base end acme-client-2.0.9/lib/acme/client/resources/directory.rb000066400000000000000000000036541411343312700232060ustar00rootroot00000000000000# frozen_string_literal: true class Acme::Client::Resources::Directory DIRECTORY_RESOURCES = { new_nonce: 'newNonce', new_account: 'newAccount', new_order: 'newOrder', new_authz: 'newAuthz', revoke_certificate: 'revokeCert', key_change: 'keyChange' } DIRECTORY_META = { terms_of_service: 'termsOfService', website: 'website', caa_identities: 'caaIdentities', external_account_required: 'externalAccountRequired' } def initialize(url, connection_options) @url, @connection_options = url, connection_options end def endpoint_for(key) directory.fetch(key) do |missing_key| raise Acme::Client::Error::UnsupportedOperation, "Directory at #{@url} does not include `#{missing_key}`" end end def terms_of_service meta[DIRECTORY_META[:terms_of_service]] end def website meta[DIRECTORY_META[:website]] end def caa_identities meta[DIRECTORY_META[:caa_identities]] end def external_account_required meta[DIRECTORY_META[:external_account_required]] end def meta directory[:meta] end private def directory @directory ||= load_directory end def load_directory body = fetch_directory result = {} result[:meta] = body.delete('meta') DIRECTORY_RESOURCES.each do |key, entry| result[key] = URI(body[entry]) if body[entry] end result rescue JSON::ParserError => exception raise Acme::Client::Error::InvalidDirectory, "Invalid directory url\n#{@directory} did not return a valid directory\n#{exception.inspect}" end def fetch_directory connection = Faraday.new(url: @directory, **@connection_options) do |configuration| configuration.use Acme::Client::FaradayMiddleware, client: nil, mode: nil configuration.adapter Faraday.default_adapter end connection.headers[:user_agent] = Acme::Client::USER_AGENT response = connection.get(@url) response.body end end acme-client-2.0.9/lib/acme/client/resources/order.rb000066400000000000000000000026721411343312700223140ustar00rootroot00000000000000# frozen_string_literal: true class Acme::Client::Resources::Order attr_reader :url, :status, :contact, :finalize_url, :identifiers, :authorization_urls, :expires, :certificate_url def initialize(client, **arguments) @client = client assign_attributes(**arguments) end def reload assign_attributes(**@client.order(url: url).to_h) true end def authorizations @authorization_urls.map do |authorization_url| @client.authorization(url: authorization_url) end end def finalize(csr:) assign_attributes(**@client.finalize(url: finalize_url, csr: csr).to_h) true end def certificate(force_chain: nil) if certificate_url @client.certificate(url: certificate_url, force_chain: force_chain) else raise Acme::Client::Error::CertificateNotReady, 'No certificate_url to collect the order' end end def to_h { url: url, status: status, expires: expires, finalize_url: finalize_url, authorization_urls: authorization_urls, identifiers: identifiers, certificate_url: certificate_url } end private def assign_attributes(url:, status:, expires:, finalize_url:, authorization_urls:, identifiers:, certificate_url: nil) @url = url @status = status @expires = expires @finalize_url = finalize_url @authorization_urls = authorization_urls @identifiers = identifiers @certificate_url = certificate_url end end acme-client-2.0.9/lib/acme/client/self_sign_certificate.rb000066400000000000000000000032561411343312700235010ustar00rootroot00000000000000class Acme::Client::SelfSignCertificate attr_reader :private_key, :subject_alt_names, :not_before, :not_after extend Forwardable def_delegators :certificate, :to_pem, :to_der def initialize(subject_alt_names:, not_before: default_not_before, not_after: default_not_after, private_key: generate_private_key) @private_key = private_key @subject_alt_names = subject_alt_names @not_before = not_before @not_after = not_after end def certificate @certificate ||= begin certificate = generate_certificate extension_factory = generate_extension_factory(certificate) subject_alt_name_entry = subject_alt_names.map { |d| "DNS: #{d}" }.join(',') subject_alt_name_extension = extension_factory.create_extension('subjectAltName', subject_alt_name_entry) certificate.add_extension(subject_alt_name_extension) certificate.sign(private_key, digest) end end private def generate_private_key OpenSSL::PKey::RSA.new(2048) end def default_not_before Time.now - 3600 end def default_not_after Time.now + 30 * 24 * 3600 end def digest OpenSSL::Digest::SHA256.new end def generate_certificate certificate = OpenSSL::X509::Certificate.new certificate.not_before = not_before certificate.not_after = not_after Acme::Client::Util.set_public_key(certificate, private_key) certificate.version = 2 certificate.serial = 1 certificate end def generate_extension_factory(certificate) extension_factory = OpenSSL::X509::ExtensionFactory.new extension_factory.subject_certificate = certificate extension_factory.issuer_certificate = certificate extension_factory end end acme-client-2.0.9/lib/acme/client/util.rb000066400000000000000000000016151411343312700201400ustar00rootroot00000000000000module Acme::Client::Util def urlsafe_base64(data) Base64.urlsafe_encode64(data).sub(/[\s=]*\z/, '') end LINK_MATCH = /<(.*?)>\s?;\s?rel="([\w-]+)"/ # See RFC 8288 - https://tools.ietf.org/html/rfc8288#section-3 def decode_link_headers(link_header) link_header.split(',').each_with_object({}) { |entry, hash| _, link, name = *entry.match(LINK_MATCH) hash[name] ||= [] hash[name].push(link) } end # Sets public key on CSR or cert. # # obj - An OpenSSL::X509::Certificate or OpenSSL::X509::Request instance. # priv - An OpenSSL::PKey::EC or OpenSSL::PKey::RSA instance. # # Returns nothing. def set_public_key(obj, priv) case priv when OpenSSL::PKey::EC obj.public_key = priv when OpenSSL::PKey::RSA obj.public_key = priv.public_key else raise ArgumentError, 'priv must be EC or RSA' end end extend self end acme-client-2.0.9/lib/acme/client/version.rb000066400000000000000000000001411411343312700206410ustar00rootroot00000000000000# frozen_string_literal: true module Acme class Client VERSION = '2.0.9'.freeze end end acme-client-2.0.9/spec/000077500000000000000000000000001411343312700146345ustar00rootroot00000000000000acme-client-2.0.9/spec/account_spec.rb000066400000000000000000000027531411343312700176360ustar00rootroot00000000000000require 'spec_helper' describe Acme::Client::Resources::Account do let(:private_key) { generate_private_key } let(:unregistered_client) do client = Acme::Client.new(private_key: private_key, directory: DIRECTORY_URL) client.new_account(contact: 'mailto:info@example.com', terms_of_service_agreed: true) client end let(:client) do client = Acme::Client.new(private_key: private_key, directory: DIRECTORY_URL) client.new_account(contact: 'mailto:info@example.com', terms_of_service_agreed: true) client end let(:account) do client.account end context 'status' do it 'send the agreement for the terms', vcr: { cassette_name: 'registration_agree_terms' } do expect(account.status).to eq('valid') end end context 'update' do it 'update contact information', vcr: { cassette_name: 'account_update' } do expect(account.contact).to eq(['mailto:info@example.com']) account.update(contact: 'mailto:updated@example.com') expect(account.contact).to eq(['mailto:updated@example.com']) end end context 'deactivate' do it 'deactivate account', vcr: { cassette_name: 'account_deactivate' } do expect(account.status).to eq('valid') account.deactivate expect(account.status).to eq('deactivated') end end context 'reload', vcr: { cassette_name: 'account_reload' } do it 'reload the account' do expect { account.reload }.not_to raise_error expect(account.url).not_to be_nil end end end acme-client-2.0.9/spec/authorization_spec.rb000066400000000000000000000032451411343312700210770ustar00rootroot00000000000000# frozen_string_literal: true require 'spec_helper' describe Acme::Client::Resources::Authorization do let(:private_key) { generate_private_key } let(:client) do client = Acme::Client.new(private_key: private_key, directory: DIRECTORY_URL) client.new_account(contact: 'mailto:info@example.com', terms_of_service_agreed: true) client end let(:order) do client.new_order(identifiers: [{ type: 'dns', value: 'example.com' }]) end let(:authorization) { client.authorization(url: order.authorization_urls.first) } context 'deactivate' do it 'successfully deactive the authorization', vcr: { cassette_name: 'authorization_deactivate' } do expect(authorization.status).to eq('pending') expect { authorization.deactivate }.not_to raise_error expect(authorization.status).to eq('deactivated') end end context 'challenges' do it 'returns the challenges', vcr: { cassette_name: 'authorization_challenges' } do expect(authorization.challenges).to all(be_kind_of(Acme::Client::Resources::Challenges::Base)) end it 'returns the HTTP challenge', vcr: { cassette_name: 'authorization_http_challenge' } do expect(authorization.http).to be_a(Acme::Client::Resources::Challenges::HTTP01) end it 'returns the DNS challenge', vcr: { cassette_name: 'authorization_dns_challenge' } do expect(authorization.dns).to be_a(Acme::Client::Resources::Challenges::DNS01) end end context 'reload' do it 'successfully reload the authorization', vcr: { cassette_name: 'authorization_reload' } do expect { authorization.reload }.not_to raise_error expect(authorization.url).not_to be_nil end end end acme-client-2.0.9/spec/cassettes/000077500000000000000000000000001411343312700166325ustar00rootroot00000000000000acme-client-2.0.9/spec/cassettes/account_contact_deactivate.yml000066400000000000000000000150011411343312700247120ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:15 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:15 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - jlqzVngJd_Dr9JEngxlYOw Date: - Thu, 10 Oct 2019 03:08:15 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:15 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiamxxelZuZ0pkX0RyOUpFbmd4bFlPdyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImUiOiJBUUFCIiwia3R5IjoiUlNBIiwibiI6InJKN0Q2cV9fS0FPM2Q2M3RtbHk3eXdjTlhabWhlRl8zc3JlcFpMaHdKbW94VUtfWnJWeVQ4VHpndmxwLVZYTVZHeThvaEt6MUZBektKVVYwYUVFWG5CNzZSbVpSVTU3b2RGanZkeWZfOG82UWNMUER3c21STFFvR0JDNmlFSjZyX3ZCb3RKZHE2ZXdtdF9nZ0ZTa2lRNU1Gb2twNnNsTktSSTJKRUZ5NFkyTmtfa19SSlRxNm5ER2pwOXhpdnR4STctc0Fuak15V19jaVZ1MHFnTUtKcy0xYmQ5bm83TnkwR1NjbmJKNk1yY2kwTTFBcVNPSnJiY3h5TWdhbFZCZV9TVU9vMm9DdC1Vb2FEVF9xM0lhVDNLNURETlF0M01yWFhsOXNmTDFKQ2ZWSW5Fc1JqeVRULWl5WGZoQ011M0h6enppZHMwNGwxZXRhRmFFbUhjM1BJdyJ9fQ","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"dm_ch6ybg9na20Ygn_gOkjE5zyte8MzcK-vsaJU-EMrLnoo3aR7opx3sYnIyAStVxycepXC3-w_sLc_g7QPZ7u6DVPEekMbRlCMP-e7ENhs2H05BvmuXG0unfyMGCX6RNoXOxFq6Sckm9pM69RJzsaIQe-M1mF8RDMnaFIyq2hwjoHMxvn93F1UOATgVBzrfM7oG9uMyUFUP8QbPsdWLt4B8A9avIEbamN9XR_lA9vlaZpdDyVLN7vPi-gjUFdV6u0AzeHwiYG68xqwABftWOLq2oinVIDyfJfdMZ6QEf_LDAqInzTjthTfJbATjtstKFxZJGHDzZl4S8c75KyPs4A"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/57" Replay-Nonce: - Hk_U6WiUO_c_nk94sAQ6RA Date: - Thu, 10 Oct 2019 03:08:15 GMT Content-Length: - '550' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/57", "key": { "kty": "RSA", "n": "rJ7D6q__KAO3d63tmly7ywcNXZmheF_3srepZLhwJmoxUK_ZrVyT8Tzgvlp-VXMVGy8ohKz1FAzKJUV0aEEXnB76RmZRU57odFjvdyf_8o6QcLPDwsmRLQoGBC6iEJ6r_vBotJdq6ewmt_ggFSkiQ5MFokp6slNKRI2JEFy4Y2Nk_k_RJTq6nDGjp9xivtxI7-sAnjMyW_ciVu0qgMKJs-1bd9no7Ny0GScnbJ6Mrci0M1AqSOJrbcxyMgalVBe_SUOo2oCt-UoaDT_q3IaT3K5DDNQt3MrXXl9sfL1JCfVInEsRjyTT-iyXfhCMu3Hzzzids04l1etaFaEmHc3PIw", "e": "AQAB" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:15 GMT - request: method: post uri: "/my-account/57" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiSGtfVTZXaVVPX2Nfbms5NHNBUTZSQSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9teS1hY2NvdW50LzU3Iiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNTcifQ","payload":"eyJzdGF0dXMiOiJkZWFjdGl2YXRlZCJ9","signature":"UI1GQGQqmlZhoZiFWqQXdn4ZvnH3WI6Ik3sze3aAX1CZnjxi4pcVtYjobN0R73QkRnwduS1by32siYG76GtQmUyTMKIShfk2xbILsEPwQHGxgnAe6Yy8lmjPv3o7sGcdyfp1K5CrW5qrOrycb16EaSgxQQEFNNU4-_3vjXgHO62uS7c7NW84pkZB5uELDuNyDWnC1eMD_AmmGmVZvzCOy1WJheUWTwccTuGf04mycGkHbOB15IenV_OBKnrzxJrHvLZPyX0HS5f2Ay6NGLRHjsNr82qJlP-Qfxdrg2deRQqltg7k3cxwEpFN9wx9LLczfPJKynT_XzrI8zP3Ja0Cgg"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - STgLjfCPc5lz9rj3MAk1Iw Date: - Thu, 10 Oct 2019 03:08:15 GMT Content-Length: - '556' body: encoding: UTF-8 string: |- { "status": "deactivated", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/57", "key": { "kty": "RSA", "n": "rJ7D6q__KAO3d63tmly7ywcNXZmheF_3srepZLhwJmoxUK_ZrVyT8Tzgvlp-VXMVGy8ohKz1FAzKJUV0aEEXnB76RmZRU57odFjvdyf_8o6QcLPDwsmRLQoGBC6iEJ6r_vBotJdq6ewmt_ggFSkiQ5MFokp6slNKRI2JEFy4Y2Nk_k_RJTq6nDGjp9xivtxI7-sAnjMyW_ciVu0qgMKJs-1bd9no7Ny0GScnbJ6Mrci0M1AqSOJrbcxyMgalVBe_SUOo2oCt-UoaDT_q3IaT3K5DDNQt3MrXXl9sfL1JCfVInEsRjyTT-iyXfhCMu3Hzzzids04l1etaFaEmHc3PIw", "e": "AQAB" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:15 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/account_contact_update.yml000066400000000000000000000206421411343312700240720ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:15 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:15 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - tfsLQc3pSF0yOdXVTfaS1Q Date: - Thu, 10 Oct 2019 03:08:15 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:15 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIm5vbmNlIjoidGZzTFFjM3BTRjB5T2RYVlRmYVMxUSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImNydiI6IlAtMjU2Iiwia3R5IjoiRUMiLCJ4IjoiMGlkVnRWVGszQnRTcW12MDFKN2hmX3REWm5ENUJKWE5NZnc4N0tPSGd3IiwieSI6InVPa004b3dDNTJvOVFDVk9YZVpHUHZ4ZkIxdzZoS2xNSGRab2hwOVMwZmsifX0","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"8BdCmZvSdMohT2QgbeKgaYGv2sDRlOeF0YRE6NZjFGquI8Ar14AeobcqnIaVx9KHZiiNr8iS3FKj5p-kiJY7UA"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/58" Replay-Nonce: - yhMJUW76mnLknZxuN3c5dw Date: - Thu, 10 Oct 2019 03:08:15 GMT Content-Length: - '311' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/58", "key": { "kty": "EC", "crv": "P-256", "x": "ANInVbVU5NwbUqpr9NSe4X_7Q2Zw-QSVzTH8POyjh4M", "y": "uOkM8owC52o9QCVOXeZGPvxfB1w6hKlMHdZohp9S0fk" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:15 GMT - request: method: post uri: "/my-account/58" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIm5vbmNlIjoieWhNSlVXNzZtbkxrblp4dU4zYzVkdyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9teS1hY2NvdW50LzU4Iiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNTgifQ","payload":"","signature":"wmM8OfnkT5tqUtknF3_MnBMnfsOUBGa5rY6u2Z-g_cKyFT2kEjS6urTsbpUDC8jQ6_XXbpmSEk97nkrBlxSuPQ"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - XrlqznwiP_kTqx6CiDcCLA Date: - Thu, 10 Oct 2019 03:08:15 GMT Content-Length: - '311' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/58", "key": { "kty": "EC", "crv": "P-256", "x": "ANInVbVU5NwbUqpr9NSe4X_7Q2Zw-QSVzTH8POyjh4M", "y": "uOkM8owC52o9QCVOXeZGPvxfB1w6hKlMHdZohp9S0fk" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:15 GMT - request: method: post uri: "/my-account/58" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIm5vbmNlIjoiWHJscXpud2lQX2tUcXg2Q2lEY0NMQSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9teS1hY2NvdW50LzU4Iiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNTgifQ","payload":"eyJjb250YWN0IjpbIm1haWx0bzp1cGRhdGVkQGV4YW1wbGUuY29tIl19","signature":"tUQS6ACDP6-QTkKZWMhEPdWXomEZliY4eB0LAN5-tkgz5gbXSAkYoLEdXIGi9uAAkWut8rtcSuTAEGod8NCwqw"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - lMvG4i9EsevYSWVw1j3dtA Date: - Thu, 10 Oct 2019 03:08:15 GMT Content-Length: - '314' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:updated@example.com" ], "orders": "/list-orderz/58", "key": { "kty": "EC", "crv": "P-256", "x": "ANInVbVU5NwbUqpr9NSe4X_7Q2Zw-QSVzTH8POyjh4M", "y": "uOkM8owC52o9QCVOXeZGPvxfB1w6hKlMHdZohp9S0fk" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:15 GMT - request: method: post uri: "/my-account/58" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIm5vbmNlIjoibE12RzRpOUVzZXZZU1dWdzFqM2R0QSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9teS1hY2NvdW50LzU4Iiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNTgifQ","payload":"","signature":"rYKkrNnfG8xP_MAa-DLcSig7IbBIr9aI673bIhYIK5R-b1GzMQZLEL5Hd-ZlL_pBu1evCpmhjlrH-5FFYUgrMQ"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - RmUdqOeXaL1MFxFGnpHClg Date: - Thu, 10 Oct 2019 03:08:15 GMT Content-Length: - '314' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:updated@example.com" ], "orders": "/list-orderz/58", "key": { "kty": "EC", "crv": "P-256", "x": "ANInVbVU5NwbUqpr9NSe4X_7Q2Zw-QSVzTH8POyjh4M", "y": "uOkM8owC52o9QCVOXeZGPvxfB1w6hKlMHdZohp9S0fk" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:15 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/account_deactivate.yml000066400000000000000000000161561411343312700232130ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:22 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:22 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - aIpDHONQ5aIE4y_5eCwLTw Date: - Thu, 10 Oct 2019 03:08:22 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:22 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzM4NCIsIm5vbmNlIjoiYUlwREhPTlE1YUlFNHlfNWVDd0xUdyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImNydiI6IlAtMzg0Iiwia3R5IjoiRUMiLCJ4IjoiMmRzeVlnSTFtclFpZlgwd2VUeWlqcHVma3lqYUZIOVQteGhhMkNNNm5KWkxYaFV5RXNTaFNLT2JKb2NEZW93eiIsInkiOiJMQTVkTFg0cE1hU3JqWllfd0l1emYtSFZfZGotd04tUHYySzFESE1feTlyVmg4RnA2bXR6aDQ0a0doNGVKZEc2In19","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"k-449-HjTBfetN7UdOPnx3d1BY5EFzNmA4ATwlPsY63VwiAMqUiczo_rPRGe8gzq5eqn38zaqrdFq4IOlvsQaZohryeo4NXDxfQJVVs2D6W-ljaxrEFreZP9mI2oK-qb"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/77" Replay-Nonce: - OxD0J0u_iL0-5vwUS4D5QA Date: - Thu, 10 Oct 2019 03:08:22 GMT Content-Length: - '353' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/77", "key": { "kty": "EC", "crv": "P-384", "x": "2dsyYgI1mrQifX0weTyijpufkyjaFH9T-xha2CM6nJZLXhUyEsShSKObJocDeowz", "y": "LA5dLX4pMaSrjZY_wIuzf-HV_dj-wN-Pv2K1DHM_y9rVh8Fp6mtzh44kGh4eJdG6" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:22 GMT - request: method: post uri: "/my-account/77" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzM4NCIsIm5vbmNlIjoiT3hEMEowdV9pTDAtNXZ3VVM0RDVRQSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9teS1hY2NvdW50Lzc3Iiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNzcifQ","payload":"","signature":"sF5Zsax1s_OAgCPiZCOW473jl1E0fzeAS8v7fF90IyeUBcS6Ag9nh0pwpBfDFmfab8a_GuqW7ipdcmBKfWJaNSmdEBw_aC4x3KXW0lpE3etcJ19AheuPwvnkqn7eSSBw"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - tTu9SWOMZL9kvmLYxPiL7w Date: - Thu, 10 Oct 2019 03:08:22 GMT Content-Length: - '353' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/77", "key": { "kty": "EC", "crv": "P-384", "x": "2dsyYgI1mrQifX0weTyijpufkyjaFH9T-xha2CM6nJZLXhUyEsShSKObJocDeowz", "y": "LA5dLX4pMaSrjZY_wIuzf-HV_dj-wN-Pv2K1DHM_y9rVh8Fp6mtzh44kGh4eJdG6" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:22 GMT - request: method: post uri: "/my-account/77" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzM4NCIsIm5vbmNlIjoidFR1OVNXT01aTDlrdm1MWXhQaUw3dyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9teS1hY2NvdW50Lzc3Iiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNzcifQ","payload":"eyJzdGF0dXMiOiJkZWFjdGl2YXRlZCJ9","signature":"W5vxTjc-GkIN3UVsKwuh6Cf8v-gEBQ8CywzO8MgRnPBJMniMYbnNtMkDEBXNYBVjgRbWaKv97L9SiHHGRD1Ts9Dz2Ng4bLqbioOASbvIjSLllb_Fmc8D9pearT6ByZRc"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - O8Wm_mcioRoVMlJplEZ9oQ Date: - Thu, 10 Oct 2019 03:08:22 GMT Content-Length: - '359' body: encoding: UTF-8 string: |- { "status": "deactivated", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/77", "key": { "kty": "EC", "crv": "P-384", "x": "2dsyYgI1mrQifX0weTyijpufkyjaFH9T-xha2CM6nJZLXhUyEsShSKObJocDeowz", "y": "LA5dLX4pMaSrjZY_wIuzf-HV_dj-wN-Pv2K1DHM_y9rVh8Fp6mtzh44kGh4eJdG6" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:22 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/account_key_change.yml000066400000000000000000000304371411343312700231750ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.7 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Server: - nginx Date: - Tue, 27 Apr 2021 18:33:17 GMT Content-Type: - application/json Content-Length: - '724' Connection: - keep-alive Cache-Control: - public, max-age=0, no-cache X-Frame-Options: - DENY Strict-Transport-Security: - max-age=604800 body: encoding: UTF-8 string: |- { "-bvtCFDCWdA": "https://community.letsencrypt.org/t/adding-random-entries-to-the-directory/33417", "keyChange": "/acme/key-change", "meta": { "caaIdentities": [ "letsencrypt.org" ], "termsOfService": "https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf", "website": "https://letsencrypt.org/docs/staging-environment/" }, "newAccount": "/acme/new-acct", "newNonce": "/acme/new-nonce", "newOrder": "/acme/new-order", "revokeCert": "/acme/revoke-cert" } recorded_at: Tue, 27 Apr 2021 18:33:17 GMT - request: method: head uri: "/acme/new-nonce" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.7 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Server: - nginx Date: - Tue, 27 Apr 2021 18:33:17 GMT Connection: - keep-alive Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - 0004Q6FwstesFU9hs8aYuiUHBE2SaO6bVslbl_D909Bt2GI X-Frame-Options: - DENY Strict-Transport-Security: - max-age=604800 body: encoding: UTF-8 string: '' recorded_at: Tue, 27 Apr 2021 18:33:17 GMT - request: method: post uri: "/acme/new-acct" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiMDAwNFE2RndzdGVzRlU5aHM4YVl1aVVIQkUyU2FPNmJWc2xibF9EOTA5QnQyR0kiLCJ1cmwiOiJodHRwczovL2FjbWUtc3RhZ2luZy12MDIuYXBpLmxldHNlbmNyeXB0Lm9yZy9hY21lL25ldy1hY2N0IiwiandrIjp7ImUiOiJBUUFCIiwia3R5IjoiUlNBIiwibiI6Im51RzlTckF0aDczelphM3FIS25iZWRndTEtXzd5cGdHSGNFY3FlV2R1a3ZaLUZmbm9DNDZfRm5SaV9kQ0FqcUNMWVpoWDhPZTZ3X1ZXcy1rdXNDbkFwdXNVakNaMWNRNzl0MTdfNEc5ZUdlaG54eEF6eTljNGxnUmlORjB6WEowNU1uZGo4TlJoYnZ1SGpURWNvZERmQzNnMUxOMVdCMlE1WWxnVmZLcUp1M1kzbHlXNDhOc3BsXzZpeFdWU2QzV1I4UEJYTFo1dE4yMlJmWnk3RF8xejdmcVJuSXlMYXNVTEIzanNfR3VZMzh1VWZrRDhGTnhZeGtyc2dvdUR6ZkI4NUxFeGNmYnVGZFFZRWF2eEFpZmlYUG5wNkdOMGROYVd5WFpJcndrNlkzSkxHempxQ1FxMGVqQ0FHVWZkekdIc2trNmdremdhV0hiRDdnS3FfRGh2USJ9fQ","payload":"eyJjb250YWN0IjpbIm1haWx0bzpkYXZpZC5zY2h3YXJ0eitjaGFuZ2VtZUBzaG9waWZ5LmNvbSJdLCJ0ZXJtc09mU2VydmljZUFncmVlZCI6dHJ1ZX0","signature":"OefcAaAKnn3uOSM0XiH06DTC-u5p6EI2dSU3HXISmA7e0rXGfHZ6iW1a_lic50cAf1NE5hkiIQgDAZy_WSmpFuTaesLYmSU2S2evHy8BtdsC8MGps8HiBCC5yz3H7nxMkTj54y6MiSh03taQtgSnT_-V6SIAUhKiQsx3-1qHDHqBDcpmQIklOvfANNSrXudNCDaP5zQYRSKdM0Uoofuxy-c5-IXS7BkPhlDL_T-kP6B8vteoIhDw_QKIbRyLIa1IQujwDKA-Q9hc_7MSEOjfhC6WzqKKLCS4ExyrV6gzsnJkXGP6QaoeXifIH-GW8W0m3W5A3cngb2GWLTTC0sSXSw"}' headers: User-Agent: - Acme::Client v2.0.7 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Server: - nginx Date: - Tue, 27 Apr 2021 18:33:18 GMT Content-Type: - application/json Content-Length: - '578' Connection: - keep-alive Boulder-Requester: - '19272981' Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" - ;rel="terms-of-service" Location: - "/acme/acct/19272981" Replay-Nonce: - 00037TRwTW3IwosljzcjwY_JihDoDIBfC56ue3-_0OzC2fQ X-Frame-Options: - DENY Strict-Transport-Security: - max-age=604800 body: encoding: UTF-8 string: |- { "key": { "kty": "RSA", "n": "nuG9SrAth73zZa3qHKnbedgu1-_7ypgGHcEcqeWdukvZ-FfnoC46_FnRi_dCAjqCLYZhX8Oe6w_VWs-kusCnApusUjCZ1cQ79t17_4G9eGehnxxAzy9c4lgRiNF0zXJ05Mndj8NRhbvuHjTEcodDfC3g1LN1WB2Q5YlgVfKqJu3Y3lyW48Nspl_6ixWVSd3WR8PBXLZ5tN22RfZy7D_1z7fqRnIyLasULB3js_GuY38uUfkD8FNxYxkrsgouDzfB85LExcfbuFdQYEavxAifiXPnp6GN0dNaWyXZIrwk6Y3JLGzjqCQq0ejCAGUfdzGHskk6gkzgaWHbD7gKq_DhvQ", "e": "AQAB" }, "contact": [ "mailto:info@example.com" ], "initialIp": "1.2.3.4", "createdAt": "2021-04-27T18:33:17.999045924Z", "status": "valid" } recorded_at: Tue, 27 Apr 2021 18:33:18 GMT - request: method: post uri: "/acme/key-change" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiMDAwMzdUUndUVzNJd29zbGp6Y2p3WV9KaWhEb0RJQmZDNTZ1ZTMtXzBPekMyZlEiLCJ1cmwiOiJodHRwczovL2FjbWUtc3RhZ2luZy12MDIuYXBpLmxldHNlbmNyeXB0Lm9yZy9hY21lL2tleS1jaGFuZ2UiLCJraWQiOiJodHRwczovL2FjbWUtc3RhZ2luZy12MDIuYXBpLmxldHNlbmNyeXB0Lm9yZy9hY21lL2FjY3QvMTkyNzI5ODEifQ","payload":"eyJwcm90ZWN0ZWQiOiJleUowZVhBaU9pSktWMVFpTENKaGJHY2lPaUpTVXpJMU5pSXNJblZ5YkNJNkltaDBkSEJ6T2k4dllXTnRaUzF6ZEdGbmFXNW5MWFl3TWk1aGNHa3ViR1YwYzJWdVkzSjVjSFF1YjNKbkwyRmpiV1V2YTJWNUxXTm9ZVzVuWlNJc0ltcDNheUk2ZXlKbElqb2lRVkZCUWlJc0ltdDBlU0k2SWxKVFFTSXNJbTRpT2lKelFVZFpjV28zUnpCZmJHWkxMVWx6ZDBWdVRrWnVaa1V0VnpsWE1GUnJRa04yVG5WRU5VUnVVR2g0T1RGUmFXSXlUblo0UzNSdlNUZzNSSFowZGxaM1ZUaFlkREpJWnpsVFF6ZHdUMWhsVFZFd1VqRTVkSFJzY2twMWRtOUhla3RFYkRRNU1WbDJjVTFNTUZOUExWSlJaRzE2Y1ZaUmRsUXRSbU5yTFc5ak1WbG9WMFJ6TW1aSWVWWmpRVUZPVW10c1ZXRmlialZUV0VZME5qUjFOa2REVWxwdWVsVlpUMWRmWWxoQlEwOVJMV3B0ZHpNNVREZDRhemRUZUdwU01VNUNiazVIYnpKYU9VTmZiV00wVDFwRU4wMDJRWG96UkVaUFMyNVhRbG8xYkZGVk1HUlFVblEzUjJ4cE5HOWFZbU4zVWtadFEweG5WRmRVWDI5bk5sWnRRVEZRUm1aTk5XRnRaMFJWTkRWU1JtWXlSa1ZXUVZBNVFrcERUR2d0YWpKT01YTnNUSFJTVTBOYWIyZzVRMVZoT1dNdFIwNWtSVlZQZFRRMldFeFpaRmxCUjB0UldUTkJlR1ZUVWpWV2VGaGZZbFZ4YTFFaWZYMCIsInBheWxvYWQiOiJleUpoWTJOdmRXNTBJam9pYUhSMGNITTZMeTloWTIxbExYTjBZV2RwYm1jdGRqQXlMbUZ3YVM1c1pYUnpaVzVqY25sd2RDNXZjbWN2WVdOdFpTOWhZMk4wTHpFNU1qY3lPVGd4SWl3aWIyeGtTMlY1SWpwN0ltVWlPaUpCVVVGQ0lpd2lhM1I1SWpvaVVsTkJJaXdpYmlJNkltNTFSemxUY2tGMGFEY3plbHBoTTNGSVMyNWlaV1JuZFRFdFh6ZDVjR2RIU0dORlkzRmxWMlIxYTNaYUxVWm1ibTlETkRaZlJtNVNhVjlrUTBGcWNVTk1XVnBvV0RoUFpUWjNYMVpYY3kxcmRYTkRia0Z3ZFhOVmFrTmFNV05STnpsME1UZGZORWM1WlVkbGFHNTRlRUY2ZVRsak5HeG5VbWxPUmpCNldFb3dOVTF1WkdvNFRsSm9ZbloxU0dwVVJXTnZaRVJtUXpObk1VeE9NVmRDTWxFMVdXeG5WbVpMY1VwMU0xa3piSGxYTkRoT2MzQnNYelpwZUZkV1UyUXpWMUk0VUVKWVRGbzFkRTR5TWxKbVduazNSRjh4ZWpkbWNWSnVTWGxNWVhOVlRFSXphbk5mUjNWWk16aDFWV1pyUkRoR1RuaFplR3R5YzJkdmRVUjZaa0k0TlV4RmVHTm1ZblZHWkZGWlJXRjJlRUZwWm1sWVVHNXdOa2RPTUdST1lWZDVXRnBKY25kck5sa3pTa3hIZW1weFExRnhNR1ZxUTBGSFZXWmtla2RJYzJ0ck5tZHJlbWRoVjBoaVJEZG5TM0ZmUkdoMlVTSjlmUSIsInNpZ25hdHVyZSI6IlJqT21WRG1ZbUl5a3VjSXVlaGxOV1NRaGdqRmUtLWxkZFE3cXV2NGpaSm4wckhuZUJqeUFaLW5kOVBVbVNwQldjeThLOU5fTGU2LTNsY3pvUFU5eWZVVFR3WFl3ejNWTWdkbWFGaFQ5YVhzOWp2XzdqaUh0Q3llSVBXZW11QlZ4ZkFWaW9JT2RYVW9zcGs1b3J4REFQb1V1X0RHYWUxcXhLZ2JCbkw4TjhMU1pjbXQzOHhSLTNidER2UDdIS2xqaFU1RWlFWlNMYlVFT2xBWGRBZVlXRVRXWk5Cbmo3anljdnBvNnZDRm50U2hfazFzemhPZ1hFUlhFWmZ6S25XNmxzQjNpOGZ5M09DaE00bFU1V1VEQlA1UDBoeHk4QVNLVGZ2cTlra0YzMXJuS3kyZGtya0NpWURZVjJDWUZDMGk5RldUeUFsaFhLdzVZc0ZsSXNKTGowZyJ9","signature":"i0TegkaCxZOCbIEq6yaRYCo6CeIh559nKJSt1lVWlMjXbC_9x_GVOJ-yQkUW0tddmZ-q5iC3qWfAZw9__y93ScA3WHRDp-dbBVMlHJo_Vl8cgsuT646tT_4foxIj9eI_AbotJ8kPi9-aunGXsZKCFhPB4rzIXFi6iYvY6UkyNgdwu4srJeWTIINs89puh8Kjxy_PkuhqdTupYQ-n2zYMAU4YXep_3ibR1mHfiblqXa6EwbMtvQ6eElNh8DWzNQq0IkIDijsCdgHIrQQyo77zEzUrIjhlyyHgeJg_MIU-zFrIjgNyvWE1JjRPKTQbpjN3jLSytKHVvCFiOtLMfs1XKQ"}' headers: User-Agent: - Acme::Client v2.0.7 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Server: - nginx Date: - Tue, 27 Apr 2021 18:33:18 GMT Content-Type: - application/json Content-Length: - '568' Connection: - keep-alive Boulder-Requester: - '19272981' Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - 0004Y2NzcP1FjrzOm4Tzkro_O0xeDytdiY7LXOS7-lyT57I X-Frame-Options: - DENY Strict-Transport-Security: - max-age=604800 body: encoding: UTF-8 string: |- { "key": { "kty": "RSA", "n": "sAGYqj7G0_lfK-IswEnNFnfE-W9W0TkBCvNuD5DnPhx91Qib2NvxKtoI87DvtvVwU8Xt2Hg9SC7pOXeMQ0R19ttlrJuvoGzKDl491YvqML0SO-RQdmzqVQvT-Fck-oc1YhWDs2fHyVcAANRklUabn5SXF464u6GCRZnzUYOW_bXACOQ-jmw39L7xk7SxjR1NBnNGo2Z9C_mc4OZD7M6Az3DFOKnWBZ5lQU0dPRt7Gli4oZbcwRFmCLgTWT_og6VmA1PFfM5amgDU45RFf2FEVAP9BJCLh-j2N1slLtRSCZoh9CUa9c-GNdEUOu46XLYdYAGKQY3AxeSR5VxX_bUqkQ", "e": "AQAB" }, "contact": [ "mailto:info@example.com" ], "initialIp": "1.2.3.4", "createdAt": "2021-04-27T18:33:17Z", "status": "valid" } recorded_at: Tue, 27 Apr 2021 18:33:18 GMT - request: method: post uri: "/acme/acct/19272981" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiMDAwNFkyTnpjUDFGanJ6T200VHprcm9fTzB4ZUR5dGRpWTdMWE9TNy1seVQ1N0kiLCJ1cmwiOiJodHRwczovL2FjbWUtc3RhZ2luZy12MDIuYXBpLmxldHNlbmNyeXB0Lm9yZy9hY21lL2FjY3QvMTkyNzI5ODEiLCJraWQiOiJodHRwczovL2FjbWUtc3RhZ2luZy12MDIuYXBpLmxldHNlbmNyeXB0Lm9yZy9hY21lL2FjY3QvMTkyNzI5ODEifQ","payload":"","signature":"cFJ0c3g5lo0DuNHOnjxxg9QY5kiwL4pYuTSpUvaFLTDZWdLv_iVWbXMsloIJdlCI_PqQ6XcQhSt9IDJa_20F8Rd9QStkFwUaZ1WH20gzj_b-kBnERiKJjwScKSivEBvwalf-gTa7yIWGrvPLNOnOWgCY4Pjpx6UJKhflThYEwVO7vbmllZRLtbnjE4t6jAmTNpte3PXo7gtv8wET-pjNwK8Rr3ApxJhjk2YZIebzi6tXMN7iYauQqz38voRAulJb2YBvp-b2sOCVX1N56Pe5C7p2pTeEy5Afk8wMucG3ewiAKTr2c6EQHl6SujyX2AyOyNaSH-OylZrIBv8MXGtHvw"}' headers: User-Agent: - Acme::Client v2.0.7 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Server: - nginx Date: - Tue, 27 Apr 2021 18:33:18 GMT Content-Type: - application/json Content-Length: - '568' Connection: - keep-alive Boulder-Requester: - '19272981' Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" - ;rel="terms-of-service" Replay-Nonce: - 0004d6lAjIoQxB52FMX3Fyogi4TedA-wTO7EjEXZWqbVtuM X-Frame-Options: - DENY Strict-Transport-Security: - max-age=604800 body: encoding: UTF-8 string: |- { "key": { "kty": "RSA", "n": "sAGYqj7G0_lfK-IswEnNFnfE-W9W0TkBCvNuD5DnPhx91Qib2NvxKtoI87DvtvVwU8Xt2Hg9SC7pOXeMQ0R19ttlrJuvoGzKDl491YvqML0SO-RQdmzqVQvT-Fck-oc1YhWDs2fHyVcAANRklUabn5SXF464u6GCRZnzUYOW_bXACOQ-jmw39L7xk7SxjR1NBnNGo2Z9C_mc4OZD7M6Az3DFOKnWBZ5lQU0dPRt7Gli4oZbcwRFmCLgTWT_og6VmA1PFfM5amgDU45RFf2FEVAP9BJCLh-j2N1slLtRSCZoh9CUa9c-GNdEUOu46XLYdYAGKQY3AxeSR5VxX_bUqkQ", "e": "AQAB" }, "contact": [ "mailto:info@example.com" ], "initialIp": "1.2.3.4", "createdAt": "2021-04-27T18:33:17Z", "status": "valid" } recorded_at: Tue, 27 Apr 2021 18:33:18 GMT recorded_with: VCR 6.0.0 acme-client-2.0.9/spec/cassettes/account_reload.yml000066400000000000000000000161101411343312700223360ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:22 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:22 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - CrP1QhrQkN_FZt2m-polYg Date: - Thu, 10 Oct 2019 03:08:22 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:22 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzM4NCIsIm5vbmNlIjoiQ3JQMVFoclFrTl9GWnQybS1wb2xZZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImNydiI6IlAtMzg0Iiwia3R5IjoiRUMiLCJ4IjoiOXVIeFRrOVpaWTZyaXJ4NTBDcGRfSThqZEFfVG5INXBfajZSX0psbUFzemozR1pSR3ZoZzJWU2ZfWFRsbFpSeSIsInkiOiJKNlFERzViZmFkWFlzZFdUQmJSTHZIelp2UmxOTk56NU92dmVGUmVGQnZfT2pONkt5Y1NGMVU4Z2VaWnA2Q1k0In19","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"2rmE6GLVep_jRdwswxg5-ek-BxtODUvZTps7W7DNV7DEsurABCAI-8I2K8xbPnDdm4U73m3tzgjm43MQRUmM2_EU4HD57BHHL8e0WK5maHX9y0DaLJkr_xzXDTnf3B8z"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/76" Replay-Nonce: - Yf6AZXBXl4zg8fMuXti1MA Date: - Thu, 10 Oct 2019 03:08:22 GMT Content-Length: - '353' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/76", "key": { "kty": "EC", "crv": "P-384", "x": "9uHxTk9ZZY6rirx50Cpd_I8jdA_TnH5p_j6R_JlmAszj3GZRGvhg2VSf_XTllZRy", "y": "J6QDG5bfadXYsdWTBbRLvHzZvRlNNNz5OvveFReFBv_OjN6KycSF1U8geZZp6CY4" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:22 GMT - request: method: post uri: "/my-account/76" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzM4NCIsIm5vbmNlIjoiWWY2QVpYQlhsNHpnOGZNdVh0aTFNQSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9teS1hY2NvdW50Lzc2Iiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNzYifQ","payload":"","signature":"xasz4afk9YAM5PfzqKuxR5yYc2DXk8wkEAVxNOvgSJnKTgeO03T1aBhpjn_u8egRc-fw8r5Xlrit066ro-vvtF1L_nqaOi1XR_LoII1tI1paLgqq6x32_FIhqLRxRmFv"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - cQnjWF-IKQXo0LiTpvqaKQ Date: - Thu, 10 Oct 2019 03:08:22 GMT Content-Length: - '353' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/76", "key": { "kty": "EC", "crv": "P-384", "x": "9uHxTk9ZZY6rirx50Cpd_I8jdA_TnH5p_j6R_JlmAszj3GZRGvhg2VSf_XTllZRy", "y": "J6QDG5bfadXYsdWTBbRLvHzZvRlNNNz5OvveFReFBv_OjN6KycSF1U8geZZp6CY4" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:22 GMT - request: method: post uri: "/my-account/76" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzM4NCIsIm5vbmNlIjoiY1FualdGLUlLUVhvMExpVHB2cWFLUSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9teS1hY2NvdW50Lzc2Iiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNzYifQ","payload":"","signature":"KsQdo-oGEps9I5XYRd9a2YvGGPyigCDU2a6VDQImsSlOQD7vHLriJXoFCj4Bp35gmzKH7BRfEhdIIl9_CQ-AvRuMAQiYZxCSjvVs556fPla-c6o3yQDWN4IFHnz70Dtn"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - 4hysQxoLLL4LjDYY9tRQWg Date: - Thu, 10 Oct 2019 03:08:22 GMT Content-Length: - '353' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/76", "key": { "kty": "EC", "crv": "P-384", "x": "9uHxTk9ZZY6rirx50Cpd_I8jdA_TnH5p_j6R_JlmAszj3GZRGvhg2VSf_XTllZRy", "y": "J6QDG5bfadXYsdWTBbRLvHzZvRlNNNz5OvveFReFBv_OjN6KycSF1U8geZZp6CY4" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:22 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/account_update.yml000066400000000000000000000162031411343312700223550ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:22 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:22 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - Z1KBXkieCGEvGQzNEZBsKA Date: - Thu, 10 Oct 2019 03:08:22 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:22 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzM4NCIsIm5vbmNlIjoiWjFLQlhraWVDR0V2R1F6TkVaQnNLQSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImNydiI6IlAtMzg0Iiwia3R5IjoiRUMiLCJ4IjoiVjVWaHhrVHotYkNaTklJc2xrYUY3ZUV1UTFkLWh4RTJoUUlyeTZwWl9vY01zWmYyMklPWE53dHJXOHJPbVFaTyIsInkiOiJNa2dCNkY2R1M0MUtiR2dpRTlVSTROeDdLUmVmY0xlaWZvTlpsZFJRaTdQMUdQY1V0azRtR2ViRFlQTTdEZ0lPIn19","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"NjWzzv87jKOF0ZsbL6qCdzqEEji7ip-XLnsSdwOH2n9EppdVmwZdweNI1WwcROAbIJcSHN5qwplXIW454oI9lkHzB3GV0bTSLVGcgxBE7jVHlb6CoElqzSSrvCnTylcZ"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/75" Replay-Nonce: - UEgPK0rQckOGL31ajF6_vQ Date: - Thu, 10 Oct 2019 03:08:22 GMT Content-Length: - '353' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/75", "key": { "kty": "EC", "crv": "P-384", "x": "V5VhxkTz-bCZNIIslkaF7eEuQ1d-hxE2hQIry6pZ_ocMsZf22IOXNwtrW8rOmQZO", "y": "MkgB6F6GS41KbGgiE9UI4Nx7KRefcLeifoNZldRQi7P1GPcUtk4mGebDYPM7DgIO" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:22 GMT - request: method: post uri: "/my-account/75" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzM4NCIsIm5vbmNlIjoiVUVnUEswclFja09HTDMxYWpGNl92USIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9teS1hY2NvdW50Lzc1Iiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNzUifQ","payload":"","signature":"fOKByeKmX9j5VxHiH10UFfp-QcfXU4IsFTYKzJ-4iMqN_OVZ7uBWBZpynM9EzuzOWqo-bbesA8eladGOr9XWn5uOYCOU8bSvatl-exAMWkJTPJ4oAhZvrHD4y7S0Ejm9"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - WpFzVcHnnxQNyJDv2T17BQ Date: - Thu, 10 Oct 2019 03:08:22 GMT Content-Length: - '353' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/75", "key": { "kty": "EC", "crv": "P-384", "x": "V5VhxkTz-bCZNIIslkaF7eEuQ1d-hxE2hQIry6pZ_ocMsZf22IOXNwtrW8rOmQZO", "y": "MkgB6F6GS41KbGgiE9UI4Nx7KRefcLeifoNZldRQi7P1GPcUtk4mGebDYPM7DgIO" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:22 GMT - request: method: post uri: "/my-account/75" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzM4NCIsIm5vbmNlIjoiV3BGelZjSG5ueFFOeUpEdjJUMTdCUSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9teS1hY2NvdW50Lzc1Iiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNzUifQ","payload":"eyJjb250YWN0IjpbIm1haWx0bzp1cGRhdGVkQGV4YW1wbGUuY29tIl19","signature":"AxHnABRLi0AecBE2Cd49fgm4dMsrcF0fyMP-D29fxP337Hc9lNDqnZReVr3mOc02ezy6gujNaa1qFaMwdCVM4UU9x-EM6x7mlz0sGFGWdbSY55aBfeiRmC7U7Q-nkR2U"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - hSWCipH97jCluQOKpsP26A Date: - Thu, 10 Oct 2019 03:08:22 GMT Content-Length: - '356' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:updated@example.com" ], "orders": "/list-orderz/75", "key": { "kty": "EC", "crv": "P-384", "x": "V5VhxkTz-bCZNIIslkaF7eEuQ1d-hxE2hQIry6pZ_ocMsZf22IOXNwtrW8rOmQZO", "y": "MkgB6F6GS41KbGgiE9UI4Nx7KRefcLeifoNZldRQi7P1GPcUtk4mGebDYPM7DgIO" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:22 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/authorization_challenges.yml000066400000000000000000000220451411343312700244450ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:09 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:09 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - 4jcJtiZ_MCoDfXwStQvXEQ Date: - Thu, 10 Oct 2019 03:08:09 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:09 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiNGpjSnRpWl9NQ29EZlh3U3RRdlhFUSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImUiOiJBUUFCIiwia3R5IjoiUlNBIiwibiI6InBqUjhBdXl6N1UxeE1WS0lwYlJEX0F2ZzRGVHZvdTBfZDJrUzZMWkVqX0doZG5pd1FyQ3lYQjU2NzNROWpJcEM1eWU3TFpkMEtMRUo3cjFMY3hXTU5ES1UzdzloakVzTXNsRXo1aDB0QmhSOWJDSEFCS1B2WmNndkcyTTdJS0NsdERwUGJwUkN4dmJFc0F4NllnRlE2QVFJelk2aHppdlNCY0FRY2xqSU5TMEFiOFFZakdibmliVjBnLTBISE5iZGNIa0k3WGQxQXV6eGJOdlF1QmhseVVBQ2pLQnc2NnBMNDNjSmFhMXM4ejdOYkZRMzBsSnVXSHBNN25ZazhSZl9xaTFaNWRTLTVWLVJGTzBWeEJidTNwVEVEQXBSdW1VampBMThfbWVXeFNfcDZjYllJNmZwQTYwZldZZ0REMGRQX3Uyekxodng2bFBPXzU5ODFmeFV0dyJ9fQ","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"MIZKLWW0K0tEoJ9Xp7iFAkbukEhSPlkjzkZDETlBASYCt5z1a2ftZ7y1YSHQIlEOJUMDwIec7c8KzMGyOQccAIKjQYoxe9z9Hz5GnqXloLrRmX43obALOqv8KjQBUKH3ZY5XO6TjhEM5-UyBdjEmvIgHdnOC-DQf7-zK5A3CD-zjAME7NF9lgEp6a6y7FIzDm1R3n4Oa8OQSixNOe8Xf1_joxnpqf-W1V82THsPsLJbWSX-o826bWLyp8cOJWNUmQhvbD3cGMRjFC9tefqAqqnYPGTe-KN4JzHxdzbut_8cthSDDfy7HHfAQI7Ag-m6jXvbR5IllBvni6KHTdMzv2Q"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/45" Replay-Nonce: - ySl06LOUyOPaGU3EkD77LQ Date: - Thu, 10 Oct 2019 03:08:09 GMT Content-Length: - '550' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/45", "key": { "kty": "RSA", "n": "pjR8Auyz7U1xMVKIpbRD_Avg4FTvou0_d2kS6LZEj_GhdniwQrCyXB5673Q9jIpC5ye7LZd0KLEJ7r1LcxWMNDKU3w9hjEsMslEz5h0tBhR9bCHABKPvZcgvG2M7IKCltDpPbpRCxvbEsAx6YgFQ6AQIzY6hzivSBcAQcljINS0Ab8QYjGbnibV0g-0HHNbdcHkI7Xd1AuzxbNvQuBhlyUACjKBw66pL43cJaa1s8z7NbFQ30lJuWHpM7nYk8Rf_qi1Z5dS-5V-RFO0VxBbu3pTEDApRumUjjA18_meWxS_p6cbYI6fpA60fWYgDD0dP_u2zLhvx6lPO_5981fxUtw", "e": "AQAB" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:09 GMT - request: method: post uri: "/order-plz" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoieVNsMDZMT1V5T1BhR1UzRWtENzdMUSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9vcmRlci1wbHoiLCJraWQiOiJodHRwczovLzE5Mi4xNjguNTYuOTM6MTQwMDAvbXktYWNjb3VudC80NSJ9","payload":"eyJpZGVudGlmaWVycyI6W3sidHlwZSI6ImRucyIsInZhbHVlIjoiZXhhbXBsZS5jb20ifV19","signature":"H_smQjeqUch8qLD_8fMhg8qUTJ0r0mGfdD0EnecWG3A7upYCPxFG0tScxqSe9qNxiSWc9bE66hsomVSk6Kcuoorwk9_L8J2QtGsg1VJPuGrdUkMqtPw3zoAMBLiHc1F7z1N4Km9ZTau2XzUqPekwfgwZ87ybO6pcTBxHl18Lxc7P-43o6d_yygpGlg2dQGH3519Oo5yQHrLCvO_GmejIvZCPiZ2q1018KyZA8UFq7fRwmiH2Y6PSvs83S--F7dm58FbRzBEdSppuNwieQNUKcXjugVtcMnp7QaHQ4YRmicjS9sHirmBd3ftl800J9jdwD3X070t6vCrVKB4c79pRcw"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-order/a3s4crCeGC6OX_xaqyBMmEHHfFRreTJ94_Ufft0Azk0" Replay-Nonce: - tN75Oenx5I-1J24wK0FmHQ Date: - Thu, 10 Oct 2019 03:08:09 GMT Content-Length: - '382' body: encoding: UTF-8 string: |- { "status": "pending", "expires": "2019-10-11T03:08:09Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/a3s4crCeGC6OX_xaqyBMmEHHfFRreTJ94_Ufft0Azk0", "authorizations": [ "/authZ/u7NCzERVTfL8v1Eg3nmdSl8Li9arBBbuebSpAdUzpe0" ] } http_version: recorded_at: Thu, 10 Oct 2019 03:08:09 GMT - request: method: post uri: "/authZ/u7NCzERVTfL8v1Eg3nmdSl8Li9arBBbuebSpAdUzpe0" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoidE43NU9lbng1SS0xSjI0d0swRm1IUSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9hdXRoWi91N05DekVSVlRmTDh2MUVnM25tZFNsOExpOWFyQkJidWViU3BBZFV6cGUwIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNDUifQ","payload":"","signature":"gPZfJpfwXTVyqcK2W67XJ21i_JQXbPKUZJTMck3JfXKNwpsoJTdO6F1MWH6iswMC81iCDi4Slkyz-P9mFqtEtIOiL47XECIR8IStZ11dEEcY2biaWc6kI_Jk0jCXV6XEqdrsrpPdx1f86n6SObeLizBpc0A3T_dwZ_1aSqdL_NWShwrqwKxbUcLRZXge4YQH5ekQTlCuEeQuzyFvqlcATi4Zk5Xp_e0Ok2aWIDDYzOtsK_8sPJsKaGzRRmMNq881mVZnpMVRZYznm9gFVyL-mZ4tW-t_svOIcm7qq4hbiYyjyl5p1M5YRkg5Qo5r7k8iE5e403SNzz0w4a0vevdq2g"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - iyk7bdtIKTIhXT4iUUDUVQ Date: - Thu, 10 Oct 2019 03:08:09 GMT Content-Length: - '874' body: encoding: UTF-8 string: |- { "status": "pending", "identifier": { "type": "dns", "value": "example.com" }, "challenges": [ { "type": "dns-01", "url": "/chalZ/lIcr98EItalfzU8UeQxlGE8PyFhfdAtsQ41rKgYCfUU", "token": "jKXWn7PwoqZVJhibgCwsIaCIBN8JKtQixLFjGPfmDmc", "status": "pending" }, { "type": "tls-alpn-01", "url": "/chalZ/tcysx1wfIiNDLoZ479RVOjohBK3LpuzX_Xo_7gvdu4o", "token": "rNcqoTZaZ3KqERfYAm135PdO9xuPRJt2Jy7PyH-VNVc", "status": "pending" }, { "type": "http-01", "url": "/chalZ/bgQZl22dfoUWwPVx_UCeb3QzMAelhsf1hz44enDdccs", "token": "6Lr63JYxaoBEFfPIggNAwKHjXHvmyCnvTGSqDSqPEvA", "status": "pending" } ], "expires": "2019-10-10T04:08:09Z" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:09 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/authorization_deactivate.yml000066400000000000000000000224151411343312700244520ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:10 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:10 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - _6LSj-ivZ142RU7fCXrWPg Date: - Thu, 10 Oct 2019 03:08:10 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:10 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIm5vbmNlIjoiXzZMU2otaXZaMTQyUlU3ZkNYcldQZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImNydiI6IlAtMjU2Iiwia3R5IjoiRUMiLCJ4IjoiY2pMZlRnQzQ2QVdDNDhrTzZsWEtKTHVDQnF5TXRLX251aVVfN2VBb2JHRSIsInkiOiJIOF96NVk2ZTR2ZnZfNVFGYmZBb3pRYm43X1NLakJZMmVsLWpRcG9RMGI0In19","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"dkAJI3LWzIq88Puu3GkqJOyLIHvMHrnYDtC8wNZkpM9Lr110SmFASrXa4aozqWCcrsZEthQRyzkJ74nkCk181g"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/47" Replay-Nonce: - _BYU7s79vQuCYkWYwE3QSg Date: - Thu, 10 Oct 2019 03:08:10 GMT Content-Length: - '311' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/47", "key": { "kty": "EC", "crv": "P-256", "x": "cjLfTgC46AWC48kO6lXKJLuCBqyMtK_nuiU_7eAobGE", "y": "H8_z5Y6e4vfv_5QFbfAozQbn7_SKjBY2el-jQpoQ0b4" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:10 GMT - request: method: post uri: "/order-plz" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIm5vbmNlIjoiX0JZVTdzNzl2UXVDWWtXWXdFM1FTZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9vcmRlci1wbHoiLCJraWQiOiJodHRwczovLzE5Mi4xNjguNTYuOTM6MTQwMDAvbXktYWNjb3VudC80NyJ9","payload":"eyJpZGVudGlmaWVycyI6W3sidHlwZSI6ImRucyIsInZhbHVlIjoiZXhhbXBsZS5jb20ifV19","signature":"Lp9Rn23wZw8hBTQkfwjfqk0rZKVmRq9KOB0wIH7WNEep0tpcwzVKEnsNOgoZ1-Bo_3k8BZSmVovFRpphCz8J1w"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-order/SktKhwbq3Cu-eP4zwkk4SoZ1wVEGirjSx7kVcMbrvKI" Replay-Nonce: - vYpVw_JTVzFbX9jEToflOg Date: - Thu, 10 Oct 2019 03:08:10 GMT Content-Length: - '382' body: encoding: UTF-8 string: |- { "status": "pending", "expires": "2019-10-11T03:08:10Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/SktKhwbq3Cu-eP4zwkk4SoZ1wVEGirjSx7kVcMbrvKI", "authorizations": [ "/authZ/s6jpv9rQGWGeIxZ5XFjPV9Yyo4QfIyPQHBo14Hm8AMo" ] } http_version: recorded_at: Thu, 10 Oct 2019 03:08:10 GMT - request: method: post uri: "/authZ/s6jpv9rQGWGeIxZ5XFjPV9Yyo4QfIyPQHBo14Hm8AMo" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIm5vbmNlIjoidllwVndfSlRWekZiWDlqRVRvZmxPZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9hdXRoWi9zNmpwdjlyUUdXR2VJeFo1WEZqUFY5WXlvNFFmSXlQUUhCbzE0SG04QU1vIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNDcifQ","payload":"","signature":"_UW2-sMTZSM5CGCPayP-7TvY-q1G0LMOZzWv-0q5awwu30YpQ8lqqs4bgqwlNf4Yb-irwvG7i9HpEEyDA-N52Q"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - zAnucZvVIN6w7j4FGJVDZg Date: - Thu, 10 Oct 2019 03:08:10 GMT Content-Length: - '874' body: encoding: UTF-8 string: |- { "status": "pending", "identifier": { "type": "dns", "value": "example.com" }, "challenges": [ { "type": "tls-alpn-01", "url": "/chalZ/5uik8jd2xcCJref5hUxOspC3pAgnx8kqGJWSiRM3cJY", "token": "MAZfhQSh30CUQn8du02NjG_7Hk5gG9fMFHlmOnoaXkM", "status": "pending" }, { "type": "http-01", "url": "/chalZ/eU4lQfAefwQnpUt_gLgWRXVPCyMivt04LMLKkPG_lGY", "token": "5alEPJITuvsErm2TcrguUzm9q33c0qt_j6x0DlxVcx4", "status": "pending" }, { "type": "dns-01", "url": "/chalZ/p_6rtTBlTVc6r-Rz6kvY7b82x8-g-X_84GFSFDmYUto", "token": "9SlFVh3uqJlgWkWyjvKhrjoSHEq7tijmJEvXVVQF2AM", "status": "pending" } ], "expires": "2019-10-10T04:08:10Z" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:10 GMT - request: method: post uri: "/authZ/s6jpv9rQGWGeIxZ5XFjPV9Yyo4QfIyPQHBo14Hm8AMo" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIm5vbmNlIjoiekFudWNadlZJTjZ3N2o0RkdKVkRaZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9hdXRoWi9zNmpwdjlyUUdXR2VJeFo1WEZqUFY5WXlvNFFmSXlQUUhCbzE0SG04QU1vIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNDcifQ","payload":"eyJzdGF0dXMiOiJkZWFjdGl2YXRlZCJ9","signature":"0IWw5RaIXhSYys1-148MBZxF7TG4_VCoNk6SJPX4swA6DpXbYWt6PaMEZPSkrIU0F7SDqAV_6GZ1n0YzUeCkMQ"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - ve1IGHdI8fHozkwjsCFKPw Date: - Thu, 10 Oct 2019 03:08:10 GMT Content-Length: - '164' body: encoding: UTF-8 string: |- { "status": "deactivated", "identifier": { "type": "dns", "value": "example.com" }, "challenges": [], "expires": "2019-10-10T04:08:10Z" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:10 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/authorization_dns_challenge.yml000066400000000000000000000220451411343312700251260ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:09 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:09 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - 3KJWdBtT-druZyDCS675uQ Date: - Thu, 10 Oct 2019 03:08:09 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:09 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiM0tKV2RCdFQtZHJ1WnlEQ1M2NzV1USIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImUiOiJBUUFCIiwia3R5IjoiUlNBIiwibiI6InhwWG9BVTRmUGlIM3lNdUFZeEtCcWthYTM2NGRNcTNpSDNUTU9ZSkxZclp5b0tzU29hcmFYbkR0LUVrc3FoYTc1SENmX3NtZmhZVHV2b1p2YXBiSnI4QThSc0hhSkFEdVFnYTNHa1ZTY3g0ZGpLTmxtcmI1a1kyNFI1YndHX2owQWhZSExZbU14QWtRREpYSmtUcmdZSUhxbWNQbFI1VG1tY2RNMGh6Z0hIamJaV2ZpNEVrY2RxLUNPbi1OUGRSTE91Q0VrOUVfSUNuQ1E3dmJqYnFvSUxwa010cG9tbEp1cktwOEJrcThMeDV2eVNINTBCUzAtSG42MHo4UTZMb193Q2F1bGs1dmROdWg0Rm1Yd28ydm1HNjRwQ2ZRd1VDa2drLURyWU4tcUxoYloyXzhQOW1iTmpiRkI2SnZQMDd3WDFPWHpJLWk1SmJzenQ3MHVzU0FkdyJ9fQ","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"L-MQ9PK9riqiy_QqSakEa7k_8eSjsP1EOoPETn0wb8FPbCYUsZDghRaJItnc3TnwzXhV43ZVjl9FOlEHI-z8jLg2BJdUCmcvEP9nU2cDHZf5ShgqjW-vJGPONGjURqZB4nNJL6dli2a0FGcoy7oeb3EciTLhSJp4g6bTC-HP8Vg-6xnzkMD3pu16UjxxZVpu-GiyY6XfBB9bl9ItBU9zJGvO4NgNJTEEZpoOWQ1E2PX522_jCv2ugGhtIRLtfrXJaq9swzlqPYBbtBwjsF9QmbzYQ6I5FDRqz_egBca0UAJSyXisJId4NZkJp1h9I13LIwYBhnuy-vZpEky_7O_Psg"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/43" Replay-Nonce: - b0Svm6a8QJiMJaKJozR_Hw Date: - Thu, 10 Oct 2019 03:08:09 GMT Content-Length: - '550' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/43", "key": { "kty": "RSA", "n": "xpXoAU4fPiH3yMuAYxKBqkaa364dMq3iH3TMOYJLYrZyoKsSoaraXnDt-Eksqha75HCf_smfhYTuvoZvapbJr8A8RsHaJADuQga3GkVScx4djKNlmrb5kY24R5bwG_j0AhYHLYmMxAkQDJXJkTrgYIHqmcPlR5TmmcdM0hzgHHjbZWfi4Ekcdq-COn-NPdRLOuCEk9E_ICnCQ7vbjbqoILpkMtpomlJurKp8Bkq8Lx5vySH50BS0-Hn60z8Q6Lo_wCaulk5vdNuh4FmXwo2vmG64pCfQwUCkgk-DrYN-qLhbZ2_8P9mbNjbFB6JvP07wX1OXzI-i5Jbszt70usSAdw", "e": "AQAB" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:09 GMT - request: method: post uri: "/order-plz" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiYjBTdm02YThRSmlNSmFLSm96Ul9IdyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9vcmRlci1wbHoiLCJraWQiOiJodHRwczovLzE5Mi4xNjguNTYuOTM6MTQwMDAvbXktYWNjb3VudC80MyJ9","payload":"eyJpZGVudGlmaWVycyI6W3sidHlwZSI6ImRucyIsInZhbHVlIjoiZXhhbXBsZS5jb20ifV19","signature":"Dhe5GZ_TxSYBgdrsojvV0C6iYR-V4sboK4M2KRarFKFg3Ca5tNZv50E93PwMWisO2xVm7uy57m34EA1EoJkZHn8zZ1LYvVVP30E26LGqp6WRc69eEY1J24tCeZ15_7Z_xUvo0mRSzroGI2qUtg_I2vyJpaiWYrLWM7CJAQiOzVt7xZQd2NtQO9yO3l1qIplJG0jxRsfElXZ_adnFu6V9Ek5MIEw5u3wuFdWO3ylcYAX34Vywjz3os71Xe2ghMqqMVvSm5vpVV3afsigqE7fKJSpkZtll1IwUZIGp5EEo1kiQ1vqrSk9thP35rR3CKSj3ptoMyz-hy7oE2RzLz9pDFQ"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-order/dywUEpcqLPS22GhLxoXRfOcxkzosHuhxw2K8t7tIyLw" Replay-Nonce: - VkrCO1skfinxqRQcbuo9sQ Date: - Thu, 10 Oct 2019 03:08:09 GMT Content-Length: - '382' body: encoding: UTF-8 string: |- { "status": "pending", "expires": "2019-10-11T03:08:09Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/dywUEpcqLPS22GhLxoXRfOcxkzosHuhxw2K8t7tIyLw", "authorizations": [ "/authZ/QCX_Vz4oC1k8GCjYRN43blNT8K5rV4p0VvoY75J8gJA" ] } http_version: recorded_at: Thu, 10 Oct 2019 03:08:09 GMT - request: method: post uri: "/authZ/QCX_Vz4oC1k8GCjYRN43blNT8K5rV4p0VvoY75J8gJA" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiVmtyQ08xc2tmaW54cVJRY2J1bzlzUSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9hdXRoWi9RQ1hfVno0b0MxazhHQ2pZUk40M2JsTlQ4SzVyVjRwMFZ2b1k3NUo4Z0pBIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNDMifQ","payload":"","signature":"BgkkkhsNFugbSTjklqqVA-QSBlbvjxv4ewZ5nQHkqMNuY4NOoNYvLSLZu9W6aU2dgM6-a8Awq6yLYgF3z7W3w3xBj4QElXndbiiPJu6G7JMN9Zb18uUsfyE0-fdWUqADE5IK4bnWK1ZREGw88zlMst_IedIjp2vQXRQ7pXryguWIwxq39bsxuEuIoUxE9HWKkZ1e-SLm5jvTvZdNQepTqM9gpm0eUzIUh89LgObyCcGjfUEaBu2RW53Wj6AxBrhv_Dm0UXqjfBVvEQ71HNv2EjlsjuAI1c2XXDVVH8Y9kQkeE0SuPY-FcB3qEK5IVNEdeZ5fuc7FR7DB0bu1Y13szA"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - LmdJFv7popZJvaj_K0zfeg Date: - Thu, 10 Oct 2019 03:08:09 GMT Content-Length: - '874' body: encoding: UTF-8 string: |- { "status": "pending", "identifier": { "type": "dns", "value": "example.com" }, "challenges": [ { "type": "http-01", "url": "/chalZ/I8e-_vulYXpJncBb6QTPy-x32vGVBWYWQNQEfQapJMQ", "token": "ExaeFyYyEBBdabnoNL-19TS8T6s4MsZSXpVB8QBGDOk", "status": "pending" }, { "type": "dns-01", "url": "/chalZ/TnafAJUtyeMBTIsokZROT2UO1SiN-fG8iGkVqfrYfm4", "token": "lQ1l1wv24HWBaDP_xlIilALd_c1NDTH2ICiJrLPRJUM", "status": "pending" }, { "type": "tls-alpn-01", "url": "/chalZ/lPUCckLvxFPoSYfvD6VkjlLRYJsvrk6MT5QKJz6CPGA", "token": "2Er7lvQ6PYO9bD-Wk5uGasMJQR4H1Q-W4Y3rzQX4oeQ", "status": "pending" } ], "expires": "2019-10-10T04:08:09Z" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:09 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/authorization_http_challenge.yml000066400000000000000000000177241411343312700253310ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:09 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:09 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - ENbDqNTO3oKl2BbwCTj_kA Date: - Thu, 10 Oct 2019 03:08:09 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:09 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzM4NCIsIm5vbmNlIjoiRU5iRHFOVE8zb0tsMkJid0NUal9rQSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImNydiI6IlAtMzg0Iiwia3R5IjoiRUMiLCJ4IjoibjlrYjl4WFFjOHBTZ2EwZFpoYkRqWGR1Y0UyUmkyVGI4c3hraXJ1bGFxbWozNzdZLTR5MTliaEFiaGQ3YjBkUiIsInkiOiJBd0RqRGdzc0Z1LWpZaGs5bGhubXgtaDdYZjZxSU1PSEhPT1FxOTVVdjJmcUtBajBQdmd4ZUZYeVc3TG10VUJsIn19","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"DoCH-M7eQyOqoLbGyYYYHTYwHnX3Zuge-nCtacDAIJuBO-rWfmiuvYbn-fmyPnFSzsiuj3aPkOi4Lp6jCLXY5rLqQCiTD9gGWK6ELp7laSX3kyzfGXhm-pZCAQl_AUBv"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/44" Replay-Nonce: - 3HJxdw2_lVu74rrkFv40Ag Date: - Thu, 10 Oct 2019 03:08:09 GMT Content-Length: - '353' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/44", "key": { "kty": "EC", "crv": "P-384", "x": "n9kb9xXQc8pSga0dZhbDjXducE2Ri2Tb8sxkirulaqmj377Y-4y19bhAbhd7b0dR", "y": "AwDjDgssFu-jYhk9lhnmx-h7Xf6qIMOHHOOQq95Uv2fqKAj0PvgxeFXyW7LmtUBl" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:09 GMT - request: method: post uri: "/order-plz" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzM4NCIsIm5vbmNlIjoiM0hKeGR3Ml9sVnU3NHJya0Z2NDBBZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9vcmRlci1wbHoiLCJraWQiOiJodHRwczovLzE5Mi4xNjguNTYuOTM6MTQwMDAvbXktYWNjb3VudC80NCJ9","payload":"eyJpZGVudGlmaWVycyI6W3sidHlwZSI6ImRucyIsInZhbHVlIjoiZXhhbXBsZS5jb20ifV19","signature":"lZFkbf9XlWJgr8iQo1xVVmWMOnoSeLmNcdrDMk_xxlMMEnw_keHWr5_t9OPajzJwz8rcicxgB_7cPnY1z4Xh-m7S20rXJS8aVZQQyuChuphFXwj6uDL1YS8Nc2w0Mr5q"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-order/I780HO_BH9VzHd34b2dLlpL-ff6ikkMD0vUfXOup57I" Replay-Nonce: - STgKfagvlS0bJp7m5oQ35g Date: - Thu, 10 Oct 2019 03:08:09 GMT Content-Length: - '382' body: encoding: UTF-8 string: |- { "status": "pending", "expires": "2019-10-11T03:08:09Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/I780HO_BH9VzHd34b2dLlpL-ff6ikkMD0vUfXOup57I", "authorizations": [ "/authZ/WJA4LOg7RQ30FIpZBVKEIlsrTcHSHjCwGrTmZKdiKj0" ] } http_version: recorded_at: Thu, 10 Oct 2019 03:08:09 GMT - request: method: post uri: "/authZ/WJA4LOg7RQ30FIpZBVKEIlsrTcHSHjCwGrTmZKdiKj0" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzM4NCIsIm5vbmNlIjoiU1RnS2ZhZ3ZsUzBiSnA3bTVvUTM1ZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9hdXRoWi9XSkE0TE9nN1JRMzBGSXBaQlZLRUlsc3JUY0hTSGpDd0dyVG1aS2RpS2owIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNDQifQ","payload":"","signature":"zF0sGePGN2Y0VDkyBi7vYJW4YlMBBHMIPe_b6Ia-PDlz1WIa9s0xYdUXVBr5NoERzF5Fe1fpychAOlCfR0Kg4YAxQy_HTlss7cJh6jY2ZZdTj6ifJpQzv7krsZoHAD5l"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - hjORs94px5RbAEwVjWryJA Date: - Thu, 10 Oct 2019 03:08:09 GMT Content-Length: - '874' body: encoding: UTF-8 string: |- { "status": "pending", "identifier": { "type": "dns", "value": "example.com" }, "challenges": [ { "type": "dns-01", "url": "/chalZ/2fYgNoiFwVWcqTULeSqdN1ggZt4cYuCVAfVEdsEJaH4", "token": "DtYTgFfXRLwl8v_d7IVgsAprLTTwROdJ_TAR1dTW4cw", "status": "pending" }, { "type": "tls-alpn-01", "url": "/chalZ/bB4q9IzLykUE1Kt6GvkGRa3Xo7X7rTYopVTz4HgtOtE", "token": "i4kRIFQPxVg_0oT8YJ5umFdeH6wqBf16oUCksoAUWUw", "status": "pending" }, { "type": "http-01", "url": "/chalZ/0LKVDwWPXZzqegCfss6nLTVTJcqUMi6DW6TL6hyztXc", "token": "YS78P5G5H-FKLYzJML10rkHt7gPpIrEl-NC-etZ6T5A", "status": "pending" } ], "expires": "2019-10-10T04:08:09Z" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:09 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/authorization_reload.yml000066400000000000000000000245001411343312700236040ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:09 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:10 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - 8DmHt4kkr51_IN_kTIR8Ag Date: - Thu, 10 Oct 2019 03:08:10 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:10 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzM4NCIsIm5vbmNlIjoiOERtSHQ0a2tyNTFfSU5fa1RJUjhBZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImNydiI6IlAtMzg0Iiwia3R5IjoiRUMiLCJ4IjoiUGV0bjEyejI3UzRhU2tJQ2xfR0ptSlotbUYxU1JCQ0VVdERwMTU5a0lJQXdveUdrRDVnQlB3cWtrOUZ5UFRTZCIsInkiOiJ4aW5TR3UycUVwQmxFbGlPbnVMRnQ2UXZEd0Y1TUZfam02UHlRakFqNXF3b0w3ZTUyV0p2VDlEM2xWS3VCVVZLIn19","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"Ik6EPVY_NGzD9B6HikvAJcLSEknP7o_7_eDFXoekjZYisWnyrMwnj1Pt3qrKAB7MsxMvsuxz2WfTOPzx2W4SeffFqp0FWh52H5-0VIDgi7syPmuYG9N6odRuuiqlWfSY"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/46" Replay-Nonce: - RkUmIY2y5Z33v8Wsyhd9LQ Date: - Thu, 10 Oct 2019 03:08:10 GMT Content-Length: - '353' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/46", "key": { "kty": "EC", "crv": "P-384", "x": "Petn12z27S4aSkICl_GJmJZ-mF1SRBCEUtDp159kIIAwoyGkD5gBPwqkk9FyPTSd", "y": "xinSGu2qEpBlEliOnuLFt6QvDwF5MF_jm6PyQjAj5qwoL7e52WJvT9D3lVKuBUVK" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:10 GMT - request: method: post uri: "/order-plz" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzM4NCIsIm5vbmNlIjoiUmtVbUlZMnk1WjMzdjhXc3loZDlMUSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9vcmRlci1wbHoiLCJraWQiOiJodHRwczovLzE5Mi4xNjguNTYuOTM6MTQwMDAvbXktYWNjb3VudC80NiJ9","payload":"eyJpZGVudGlmaWVycyI6W3sidHlwZSI6ImRucyIsInZhbHVlIjoiZXhhbXBsZS5jb20ifV19","signature":"-c0oj6NrN-kcwzVAXJzP37rhCUxfwetr6B6I5tgb4M1U3_jIXQ4VXbt4IqQD_Dgca_xHXTNqJl3Wn85T3KoapHWBzqWoR2M5N4xsFAHvvqyaQNHxSH07f53cE3WUt47Z"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-order/xc1AWrQAsoIT011HHiwMTq0uiOogzqHFMr2O9UeiCUU" Replay-Nonce: - GYPBS14BluY6HeWQg06hJg Date: - Thu, 10 Oct 2019 03:08:10 GMT Content-Length: - '382' body: encoding: UTF-8 string: |- { "status": "pending", "expires": "2019-10-11T03:08:10Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/xc1AWrQAsoIT011HHiwMTq0uiOogzqHFMr2O9UeiCUU", "authorizations": [ "/authZ/hqP5_1LOgTHU_3OEyBy5cDLSmuOMNlRanFjyvFbPgFg" ] } http_version: recorded_at: Thu, 10 Oct 2019 03:08:10 GMT - request: method: post uri: "/authZ/hqP5_1LOgTHU_3OEyBy5cDLSmuOMNlRanFjyvFbPgFg" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzM4NCIsIm5vbmNlIjoiR1lQQlMxNEJsdVk2SGVXUWcwNmhKZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9hdXRoWi9ocVA1XzFMT2dUSFVfM09FeUJ5NWNETFNtdU9NTmxSYW5Ganl2RmJQZ0ZnIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNDYifQ","payload":"","signature":"ZQgahvCV26cAmkXg-z9kzicpSXvVLFBMrU8UxlnHRdZYjM_lMmcQJdxxb62qbg4D2tBOcvPuK4GanOKZEx5m8HzT_dc-5GXscfLyyOZP-z_p8X2PclLTxNNNFfQ1q4hx"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - pDq7FvzecqigZI7FzlSD8g Date: - Thu, 10 Oct 2019 03:08:10 GMT Content-Length: - '874' body: encoding: UTF-8 string: |- { "status": "pending", "identifier": { "type": "dns", "value": "example.com" }, "challenges": [ { "type": "dns-01", "url": "/chalZ/DS-p0SNlEa8e5plN6Yqae51bGzy9AVwXu24ezKN82qA", "token": "E0whvlyCUKKm-J9sQyLsLQahnO7cRx7n_5M3GWirROU", "status": "pending" }, { "type": "http-01", "url": "/chalZ/mVPl5lWTTEWoMJiFFaube-XxZPjRQS02dKf5hVBQxAw", "token": "hFcY1WnGt21mXZO-yqA7DieFcee-0hRJ6KFPeeiaVEI", "status": "pending" }, { "type": "tls-alpn-01", "url": "/chalZ/fWghE0Mncc-DTTWiuSRRr1HqRe9KVLF2jCr2TS_jEI4", "token": "pL9AetNfeEyxQpMbjQiH1986RbICvvq_Fyi4bq-mVGQ", "status": "pending" } ], "expires": "2019-10-10T04:08:10Z" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:10 GMT - request: method: post uri: "/authZ/hqP5_1LOgTHU_3OEyBy5cDLSmuOMNlRanFjyvFbPgFg" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzM4NCIsIm5vbmNlIjoicERxN0Z2emVjcWlnWkk3RnpsU0Q4ZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9hdXRoWi9ocVA1XzFMT2dUSFVfM09FeUJ5NWNETFNtdU9NTmxSYW5Ganl2RmJQZ0ZnIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNDYifQ","payload":"","signature":"_U9c5lO1_A5HLD6edR-vcgnd2QD4IP3pjS2xegKDe155fpsJm6JpVIfeTbl3aoxci6XakNZAMF8ZiYQHb3JC9YdYX1STLGxGnwEDVMloEp_S0AycGdctG6IM0OG6OXSB"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - y2Ma3Qbvi6t_tBceBvmKJw Date: - Thu, 10 Oct 2019 03:08:10 GMT Content-Length: - '874' body: encoding: UTF-8 string: |- { "status": "pending", "identifier": { "type": "dns", "value": "example.com" }, "challenges": [ { "type": "tls-alpn-01", "url": "/chalZ/fWghE0Mncc-DTTWiuSRRr1HqRe9KVLF2jCr2TS_jEI4", "token": "pL9AetNfeEyxQpMbjQiH1986RbICvvq_Fyi4bq-mVGQ", "status": "pending" }, { "type": "dns-01", "url": "/chalZ/DS-p0SNlEa8e5plN6Yqae51bGzy9AVwXu24ezKN82qA", "token": "E0whvlyCUKKm-J9sQyLsLQahnO7cRx7n_5M3GWirROU", "status": "pending" }, { "type": "http-01", "url": "/chalZ/mVPl5lWTTEWoMJiFFaube-XxZPjRQS02dKf5hVBQxAw", "token": "hFcY1WnGt21mXZO-yqA7DieFcee-0hRJ6KFPeeiaVEI", "status": "pending" } ], "expires": "2019-10-10T04:08:10Z" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:10 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/certificate_download.yml000066400000000000000000000505521411343312700235350ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:16 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:16 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - sjNfL_YgnC49g9xcA_saIQ Date: - Thu, 10 Oct 2019 03:08:16 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:16 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoic2pOZkxfWWduQzQ5Zzl4Y0Ffc2FJUSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImUiOiJBUUFCIiwia3R5IjoiUlNBIiwibiI6InRjU1pqb3RUTURFMmRQN1E2N2NUS3RhSnlFdDQzUUltaGoxLW40ZjNBTy1SelJBUEN3WDU0M1pzcjBRcXQzUHI1NXI1Y28wS09aUVl5LUpScVQ5YkFZVGFLMmdDY0xjSFpZRV9NTDZabDFzSVRUb29VMEpDX05JTHFqMjRQUUFleXdGQlVxc1FQYVVzQjl3d0ZZMnltdlB5ajg4MmdYc0ZXX2RZZTA0TUE0b3VwdXdBN19MMDFiZHhkT1JiM0h4MDRnOHVmcUF6Vi1qeHNrYlppdUZiUDBYdjNEd2VWcHNGNl9HV1Z0eHJvMm1Wc3N4dU9XN2FUYml3UDZBUlhQcnppM1prSG1OZEF6WG82RWthNTlGSHV6MVFCTkFleXV4SEx5SDNTZ1FkeG0yXzYxSGdKME9sV3RxSzA2akxIT2tuVGkzQUVReFRsVTFVNHVBZXRNQmt6USJ9fQ","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"Ld_nPc-sKOArz9XiHh5Bp8IVwIu0Yp3-s82_jn5ET1Z39XU4F0YEEzJa-iiyxxjTZ37ZuoEDpRjrPjbVV010vH0hFZoPgGJrggsQi2B6RJyEvfawo-ENG22YyTv2dF8t9ERm7XJFJlEvjzAlLuiOWiwkptDND7SCyZAsALn6wmPz6nHPGUYp8k_IiGE8aFLU2ugWfMSf5OoLkiE8fb3qBNh4kbriaYNWPR97xzptkVcZQhPQArPb20k5ZSkHiMVu17hMfcAtNq1gQYbh6AGv3qiGVks3DFpJzlTgz-c-nQ7yUKnvP25wLjdDNs_OvQ557o3qtGGLZDGt6QdOuyTEQg"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/62" Replay-Nonce: - 6f5Dk-kRAgCBUguhejRIyQ Date: - Thu, 10 Oct 2019 03:08:16 GMT Content-Length: - '550' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/62", "key": { "kty": "RSA", "n": "tcSZjotTMDE2dP7Q67cTKtaJyEt43QImhj1-n4f3AO-RzRAPCwX543Zsr0Qqt3Pr55r5co0KOZQYy-JRqT9bAYTaK2gCcLcHZYE_ML6Zl1sITTooU0JC_NILqj24PQAeywFBUqsQPaUsB9wwFY2ymvPyj882gXsFW_dYe04MA4oupuwA7_L01bdxdORb3Hx04g8ufqAzV-jxskbZiuFbP0Xv3DweVpsF6_GWVtxro2mVssxuOW7aTbiwP6ARXPrzi3ZkHmNdAzXo6Eka59FHuz1QBNAeyuxHLyH3SgQdxm2_61HgJ0OlWtqK06jLHOknTi3AEQxTlU1U4uAetMBkzQ", "e": "AQAB" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:16 GMT - request: method: post uri: "/order-plz" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiNmY1RGsta1JBZ0NCVWd1aGVqUkl5USIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9vcmRlci1wbHoiLCJraWQiOiJodHRwczovLzE5Mi4xNjguNTYuOTM6MTQwMDAvbXktYWNjb3VudC82MiJ9","payload":"eyJpZGVudGlmaWVycyI6W3sidHlwZSI6ImRucyIsInZhbHVlIjoiZXhhbXBsZS5jb20ifV19","signature":"lyxdT6pr7yQPbaIGjfZlUF31S4eSDezNEcLlcZHLdC9RCdlpkAfZSC3CImhgNZfKPRkcvxz-PkLBMNYd2tZVw8giKaaV3aa_h2o9Q2vl4Z7TSJ1ZDtTAyTe2JWuqrbW-Uz0Tlx8Ck6OftNmqlqS9yynSs4tSRdn4Tro5GAeCwTAdJFCiA3ZqdU_ZnBg3xr9u2N80pIY16HJVfhT9covYIDc-xSC6qQOatWXPsx-FdDhhcF5dsMrOpEl4RezM6mHcapWyweR1-zKytYHycyCf9JKKDaWv7YB0l2yRHYMqSMmZe-fTYDsrrxvVmcrzP_lhQD3z2wF9qG5Xjt7T1RPzzw"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-order/g1iU4KfhVBp2TEhozuYpQl4lPB1nze--DKew6Qt8dEk" Replay-Nonce: - uhUATCsfTovyOrEcY_GG-Q Date: - Thu, 10 Oct 2019 03:08:16 GMT Content-Length: - '382' body: encoding: UTF-8 string: |- { "status": "pending", "expires": "2019-10-11T03:08:16Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/g1iU4KfhVBp2TEhozuYpQl4lPB1nze--DKew6Qt8dEk", "authorizations": [ "/authZ/kDkxDA3h7IwJZN6H_zbj2Z7csGk_HDJ4NcftQP6Q-oc" ] } http_version: recorded_at: Thu, 10 Oct 2019 03:08:16 GMT - request: method: post uri: "/authZ/kDkxDA3h7IwJZN6H_zbj2Z7csGk_HDJ4NcftQP6Q-oc" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoidWhVQVRDc2ZUb3Z5T3JFY1lfR0ctUSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9hdXRoWi9rRGt4REEzaDdJd0paTjZIX3piajJaN2NzR2tfSERKNE5jZnRRUDZRLW9jIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNjIifQ","payload":"","signature":"r_Oc3Wx3YYfn61TJjm-YOcPTuSymxCRnaUtJg_cGWz1WdyJMIifhBRDL8M1ht0X5n159cKI7lTrI9vSQWeRQpuWrIufU4qskVaHssSGE1MnPhYEMujno2PWt53hSXndr9Yi3WlS27lwi3RbuoLSwSDhA5lfLCDuVD4ep8nYuhGk3bF7oXnugdSNhDIu5e8Uy9VzGko9ye6Kkpq8V6vOLoeZC8mMlV2VKl_0_GKjaOwyPM2-mhhYLzTBd4h18GPzJkvyihVJua8Wbtu3hQmqsO-tVxTaLxXzsN7qQZjFfJ0eqNafbD127f25AgcNHaYZ63-Xo_xUkYvoeQvigZX92uQ"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - NwvHdGqPOaaAcGHhIyEnMg Date: - Thu, 10 Oct 2019 03:08:16 GMT Content-Length: - '874' body: encoding: UTF-8 string: |- { "status": "pending", "identifier": { "type": "dns", "value": "example.com" }, "challenges": [ { "type": "tls-alpn-01", "url": "/chalZ/6JSpO0u0muFr1tRa_uvvJi9SdD_wEnWcJ6HW4Ke9ugU", "token": "apcWTbuUVPjf4MwOdHGMtqgorR7qXcTGBVaGpqtW9hY", "status": "pending" }, { "type": "http-01", "url": "/chalZ/59W7Vfxr-JHTLsK8J4Nwg8iCFNgA9FGVvwlGH9bo_Lw", "token": "cJKXCm4d960dASmMBvtNSjhKclTSacjPzlJeAzDcdpI", "status": "pending" }, { "type": "dns-01", "url": "/chalZ/jr17Ciwx4dtnIQFLVJIM0W1Yat5vHEMnbHR8qAmIjy4", "token": "fXRVB5wTdM5VjpxPIcwra7yW7FPACYkikopWmAlFXco", "status": "pending" } ], "expires": "2019-10-10T04:08:16Z" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:16 GMT - request: method: post uri: "/chalZ/59W7Vfxr-JHTLsK8J4Nwg8iCFNgA9FGVvwlGH9bo_Lw" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiTnd2SGRHcVBPYWFBY0dIaEl5RW5NZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9jaGFsWi81OVc3VmZ4ci1KSFRMc0s4SjROd2c4aUNGTmdBOUZHVnZ3bEdIOWJvX0x3Iiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNjIifQ","payload":"e30","signature":"Fgo6js43LQ3kI6HQ9Bi_yfOMfOO2JoSUr77mm1h164dsS9qig9eaunViRvVF6XabavHRFTZQqTelruABIP1dhD8jCOIGEnuk9VKQPr7LwGcv8oqTXijyw6WBSxJDdAajN26uQzA3Jj6cQ_d4W-YQIg4z7T2OForbEcULMVpBC2z9RrXn2ZVi0ryWCRUjo8Fvy0YB9fK21jraRiIMZ4YNv0_G2bxFxmh0Jl01pZZXJG3MSlBWQ2XBtgNzIFGkcUJ9xNd2BzvU6ZEO-RkFJEUa6q7r-8y44gMILqKUVV1E0Fa1VxKLa1K-j4MQqXucyhpnQcBdGcgdVWDIsrx-2HMxdA"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - </authZ/kDkxDA3h7IwJZN6H_zbj2Z7csGk_HDJ4NcftQP6Q-oc>;rel="up" - <>;rel="index" Replay-Nonce: - dz3OZRmgoEGt2ruXJ6u8Yg Date: - Thu, 10 Oct 2019 03:08:16 GMT Content-Length: - '198' body: encoding: UTF-8 string: |- { "type": "http-01", "url": "/chalZ/59W7Vfxr-JHTLsK8J4Nwg8iCFNgA9FGVvwlGH9bo_Lw", "token": "cJKXCm4d960dASmMBvtNSjhKclTSacjPzlJeAzDcdpI", "status": "pending" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:16 GMT - request: method: post uri: "/finalize-order/g1iU4KfhVBp2TEhozuYpQl4lPB1nze--DKew6Qt8dEk" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiZHozT1pSbWdvRUd0MnJ1WEo2dThZZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9maW5hbGl6ZS1vcmRlci9nMWlVNEtmaFZCcDJURWhvenVZcFFsNGxQQjFuemUtLURLZXc2UXQ4ZEVrIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNjIifQ","payload":"eyJjc3IiOiJNSUlDaERDQ0FXd0NBUUl3RmpFVU1CSUdBMVVFQXd3TFpYaGhiWEJzWlM1amIyMHdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFERUp4bmQ2dzJHOHIweVhtWmV0RHRMTVRIVEoydjBKTExXdThwWWhYUmJvSVctZl9Zd3hiZ1EzUEQtUGFUaHltRzFHMXpvTWtQT2VGZm41MG5WWXhwc0s5V0Z1MVdSeDc5R2NSZXA5c3dHbjdPVVJlaVBXQm1xaWZjSnpvY0tkbnRjZFhjX2FVdWszcC1tUXYybTVBbW5pTlE4YUhMbXE5a2t4V3ViWnQxMUFqTk9wVVZKemQ0SzhSaHNSZWdCMzdDX3lQaEtIYmo0ZXI3amFsMGY0dkdzeWJaT0l2TzRwN2kwdFZyR2RkcTZOS0R0UmxibkxZRGprY285UmtMWWh5ZGdrbjZ0LWlnRXd0TEZMc1VuNmw3NE1qTU9mb2g2TTQtQzJjd0pqcTZ5dnMtUy1OeWlrX0xsOFR2cXBMdFM0azRWLU54dkhSZkhJalJsU0ZwakJPUFhBZ01CQUFHZ0tUQW5CZ2txaGtpRzl3MEJDUTR4R2pBWU1CWUdBMVVkRVFRUE1BMkNDMlY0WVcxd2JHVXVZMjl0TUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFDb2RKS1pFUk5LMWs0MFdUNGJrbWo1WDlPZHNYS1Y0S3o3dVNtTEdRemkxblBrNEJ5N09IX04yNHZ6SXZVbGVUZXdvMnNvZEstREFrNFRNSVpkSHplcksweHVjRy1QdEVERnZnTVNkWUs5ZmxzTFh2T1d0Vnk1X29LbXNxYnpydDRVem9yTXpjVEVLV0hBazFIWHJoYWVZbF9lSlZucWMtclcwMENlelN5TUJtamEwMGFSY2xjY05mUmdkSl9STkF4X01KdE5tWDgxeHo2UElHUlB3RC10blIzYWlpTkpuLXg5QWJoNWhVTTlxTzVnYnUzY2pDd01WVkJpdkFvZXNkQW5zN1Z3ODc2aHgzODVWNHR2Rkx1UTZ4Ni1FRlhJTUdWZHdZQzFyX29wNGFjRXVjRi1MN1M1dmpfX3h1U1hoeVE5a0ZJaXFNYmNFaDB1V18ydjRBdW0ifQ","signature":"qi303cl4x2OtQ8oqLtt819RIu6kw-ucY2NhJinWtj9Nr7nZpEZ5JvOSfh0VDJdpGnxrfdTgZoc_iA1Qz6HQcrtOoE8gKIUuAmjUNqho33xu0NMH4VrHhwr_0YuVxLEgH4tCxxegFFDp_VajHIGw3ac5vUukwSPp8p3T4lnaoJ2t5ShTcS2J1C_tII908w5nJvPJLDRq7Iu4As0f0hoSuB2kCuhcqB9N8qdrJ3DIPglVr4yserdmpAh8Vhf7tGh5yW5CxnqKuttN_NBlokmahSmAXCpsjSdqKfsdhDnFBgSrZUMnZtO1ejq_3yQXedNjiDrNUAF2ApXWU-KLwovxSFw"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-order/g1iU4KfhVBp2TEhozuYpQl4lPB1nze--DKew6Qt8dEk" Replay-Nonce: - 1mMUz9mx6DG1Re73JbiA2g Date: - Thu, 10 Oct 2019 03:08:17 GMT Content-Length: - '385' body: encoding: UTF-8 string: |- { "status": "processing", "expires": "2019-10-11T03:08:16Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/g1iU4KfhVBp2TEhozuYpQl4lPB1nze--DKew6Qt8dEk", "authorizations": [ "/authZ/kDkxDA3h7IwJZN6H_zbj2Z7csGk_HDJ4NcftQP6Q-oc" ] } http_version: recorded_at: Thu, 10 Oct 2019 03:08:17 GMT - request: method: post uri: "/my-order/g1iU4KfhVBp2TEhozuYpQl4lPB1nze--DKew6Qt8dEk" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiMW1NVXo5bXg2REcxUmU3M0piaUEyZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9teS1vcmRlci9nMWlVNEtmaFZCcDJURWhvenVZcFFsNGxQQjFuemUtLURLZXc2UXQ4ZEVrIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNjIifQ","payload":"","signature":"LuB3JZdpgYE0NyNWS-vJo3MsFdv11X-aHMCEV4LouRFxzsAtMKL-P_cvH4_eT4esSZzbWU1yzJdxsl5Jw4t6WEu1ZDSbrNV-TYPopXwCDKYyAeo1ENjTh6XLRUagWD8uHPC0sP2SYphyNAcWtwaGlCGH-_9mviTUeze4M95-PG5WuRe6pdecB25eN6kE7tQe5EOIR_HuWqqpKCIR1IYOQ2_rwetKDIrm2PuzLGANAvdj6bNj9dBbxlIUWSAmDezFxn1v3snLlTWb16Ts1Cn7pINHVIuFhaf_3pyY0LxaH9qhHz8At4mjxDsxFy-lJZC3TEwOkOHjktRM2yKEjsDydg"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - XjdhhoqUC8ys775aMoaF3g Date: - Thu, 10 Oct 2019 03:08:17 GMT Content-Length: - '452' body: encoding: UTF-8 string: |- { "status": "valid", "expires": "2019-10-11T03:08:16Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/g1iU4KfhVBp2TEhozuYpQl4lPB1nze--DKew6Qt8dEk", "authorizations": [ "/authZ/kDkxDA3h7IwJZN6H_zbj2Z7csGk_HDJ4NcftQP6Q-oc" ], "certificate": "/certZ/5626b60eb68e2dbe" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:17 GMT - request: method: post uri: "/certZ/5626b60eb68e2dbe" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiWGpkaGhvcVVDOHlzNzc1YU1vYUYzZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9jZXJ0Wi81NjI2YjYwZWI2OGUyZGJlIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNjIifQ","payload":"","signature":"pMfijDLa3LhK-IJ8dGVVjEwnVH3d3QGFwjlVzH6WEyzFv-tYLTQIVqORAQi-03Bgb2MW8Bi1t-AOBtFQ7o5V9fMPLV5mu7YRFfBJQWsvezKdwxEsjuDD2CP8yQZY1U-fHpr6k8WSB-rTvDlQjU3FTrQkww-9WRNaKmTRUK3cPKob-UNg3BUCPgsz8dY486oG9tJLmzhoKXwYqoazk0quLBZ19_qxNoqo1MbXEhIIcqdngZjmaAQ29iaiiImebs4729m2f1eUdQHcs2N0cdsrtXfwy8diQrOV1-K279vunF85zwl1ZxGodHJo0PPvkAJtAIahg0tD1EodXmolvwpFvA"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - application/pem-certificate-chain Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/pem-certificate-chain; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - pygfaVI3gzzBT9Za9u2hvw Date: - Thu, 10 Oct 2019 03:08:17 GMT Transfer-Encoding: - chunked body: encoding: UTF-8 string: | -----BEGIN CERTIFICATE----- MIIDWTCCAkGgAwIBAgIIVia2DraOLb4wDQYJKoZIhvcNAQELBQAwKDEmMCQGA1UE AxMdUGViYmxlIEludGVybWVkaWF0ZSBDQSA2Nzk0NDAwHhcNMTkxMDEwMDMwODE3 WhcNMjQxMDEwMDMwODE3WjAWMRQwEgYDVQQDEwtleGFtcGxlLmNvbTCCASIwDQYJ KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMQnGd3rDYbyvTJeZl60O0sxMdMna/Qk sta7yliFdFughb5/9jDFuBDc8P49pOHKYbUbXOgyQ854V+fnSdVjGmwr1YW7VZHH v0ZxF6n2zAafs5RF6I9YGaqJ9wnOhwp2e1x1dz9pS6Ten6ZC/abkCaeI1Dxocuar 2STFa5tm3XUCM06lRUnN3grxGGxF6AHfsL/I+EoduPh6vuNqXR/i8azJtk4i87in uLS1WsZ12ro0oO1GVuctgOORyj1GQtiHJ2CSfq36KATC0sUuxSfqXvgyMw5+iHoz j4LZzAmOrrK+z5L43KKT8uXxO+qku1LiThX43G8dF8ciNGVIWmME49cCAwEAAaOB mDCBlTAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUF BwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAfAEkQ6UAGSjyzqImsir2+KylQa MB8GA1UdIwQYMBaAFIiN1hLypsnm8KWVi3ItK0Unjae0MBYGA1UdEQQPMA2CC2V4 YW1wbGUuY29tMA0GCSqGSIb3DQEBCwUAA4IBAQBeF+1gIU76rjruiiefWLU8bdhd VYzAoGI0/o3J+R5Q5IRkZxx3lEn/mUCkXed7iqfm5fq6Xd3ZcL0x29lsR7ppZo0J x76XwOq2mePLpQJaQ4V7pD9ahVHILHhOxhetp6l40VE8KuHg2Qlwn8S+ZTOp+6f0 LnXvxPT0zcnwsmqIELVv3y5NNetFj87AaLOtYCPRKRV7ACXVMHj6Jcfupi/Zsk37 rGEIp580kx3KgsEm4pUOYNx1oEOcp1dsNoIiw1ZOTdt3Q/ZxqgXNlDVQyk5QCXcB iPbXJtPdDZja/DeM+22K8wEoUSrcSdPNOYzV8gdrVYhVJskL7uZeWBkov+iH -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDTjCCAjagAwIBAgIIH8F+H5a3JeIwDQYJKoZIhvcNAQELBQAwIDEeMBwGA1UE AxMVUGViYmxlIFJvb3QgQ0EgM2E1OTY4MB4XDTE5MTAxMDAzMDU0MloXDTQ5MTAx MDAzMDU0MlowKDEmMCQGA1UEAxMdUGViYmxlIEludGVybWVkaWF0ZSBDQSA2Nzk0 NDAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC1TkMbn1tCv0QXFen5 Was596VScGyD0ifqoq4/kb4WQ/debH8coZzz9pVKTPbZySY/X1ltStYBI/2GdIZg t/uw9hOW7ko2Agy4bcd6tD9S+eZK4F3rH1EJutUjuq9WLmmckT8PJEbToazvDTL2 v9YGcf56v0SCuCYQshNlx5ECKb7kWWqy5D6OzJPB24BRFX7MTD8ckkdhQmzafyI7 vVkDrHFUZslx1BUQ6lfJEy0mi/UmTgxrjPwTfe5UWF6N3AZDEUng8eWAnKW9px2g 5qTUShGMZG6E6OkFHX6rmT3MVuO+rWVpyW1zKbWxvlcAyyBR91Ju6tsJFF/1Y9t+ +XHPAgMBAAGjgYMwgYAwDgYDVR0PAQH/BAQDAgKEMB0GA1UdJQQWMBQGCCsGAQUF BwMBBggrBgEFBQcDAjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSIjdYS8qbJ 5vCllYtyLStFJ42ntDAfBgNVHSMEGDAWgBQECikuQVoCg4iOTz+f+0K8SqRdsDAN BgkqhkiG9w0BAQsFAAOCAQEAeyRyz24bmQqWGYXkM02ZWHlom1FNXVtfNOlzgzjC 8sUbFYJDaXefS7x1KJwGparNWmn0jopBrSjOJLCDDphqk1DcS2YPu+7CcyodXyGw CxRSe7gYGx6I0Z/wReeb5rscJ21kJK30Tt3z2hLXWBkxfdcHit3JNLn3HA5HQRph HUr3EUzoFHfNCBecY8lWkmLeN39I0MMCis49DTact6M1jT+q1c+MzjuWO+Bst6mr 6RebdTn4monMOHvmbaVR7+klY05dMjatBF5gV7sf8mPJwUZP5NnEcTLe6zgb+dh4 kDc7qJ6UvkuoDJmbHeSd27GdCJfK+nwc49UG/Fmd8+Zeyg== -----END CERTIFICATE----- http_version: recorded_at: Thu, 10 Oct 2019 03:08:17 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/certificate_download_with_alternative.yml000066400000000000000000000612011411343312700271570ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.6 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Sat, 12 Sep 2020 17:27:51 GMT Content-Length: - '396' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "externalAccountRequired": false, "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Sat, 12 Sep 2020 17:27:51 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.6 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - DskQh-iXl-Dv8pLgernBeA Date: - Sat, 12 Sep 2020 17:27:51 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Sat, 12 Sep 2020 17:27:51 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiRHNrUWgtaVhsLUR2OHBMZ2VybkJlQSIsInVybCI6Imh0dHBzOi8vMC4wLjAuMDoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImUiOiJBUUFCIiwia3R5IjoiUlNBIiwibiI6IjdEem1UUmJvVzh0RTU2eUNOODVtYU4ySTc4cVdpMGdtU1VFRThVWTEwMEVJLXlIdjRZZzFuaU9fZGpXUllVemtsMVZabldxN1FOUExvSHJZdEx1eHVncXNlRE1wRGdXNWVfeTVmbjQ3NUw2LTBfYWFZbm5aSGl0RlE1a1Jhb0FYbGJ1UVJlYWFYczBmaGp6LWc2MmYxQjlBTVlTc2tCMV9hYlBqV2ViNFo1bzV1LXJPOW5qckRkZHFOd3liRVh5X29qTnYxekprUS1xRkUxSU1kajR3M0RzaHptcldrMEYtemE0ODZkNmp1SU1hLXdUZHBVNUpHblVOOTdfdGNEWkJmdnJFY0wxaTMwa1dmX1c3eWpBSC10Ni1LaUVrSDFFQWJucjk5bF9Gd2lZd1hPWENqX1kxZ2Q1TUpDMmNmS3Y0UzVTUUt1N3BobE1fazdoU3pRVFdrdyJ9fQ","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"0IbBSwINj_5FGiEpw-YNyKO0E9HxqMe8AKvsmJNjEi8fJqcb53JYEM8QEeJuB5UKfhDXWQ0MSyRffO10X-Jat1zgQszpF_Qfntc_CirvK9FLj6lZsoPQcjkhJ06XKOH6zmYFbDfrhLNgVU31ilsXak5_Wt7QgoS3XkQfDknMC-632lYnbt0zCZsiLJoWzr_Y9dWjGcrVMYFoIIk6B7g-ruRHpLYNZdFto2t89qQATGgoo_PaSvzgm5Zgd5qzlTmB5CcP87U3i14vtzZnVRzCzIwK3vSrnIjLLdHPCxR5iPtOyLc5X-8o1ij6FSG0-3BNZp3tk6cFFsXCO6jdhtiayQ"}' headers: User-Agent: - Acme::Client v2.0.6 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/2" Replay-Nonce: - zJhis_WK2ew36HnFUk3axw Date: - Sat, 12 Sep 2020 17:27:51 GMT Content-Length: - '543' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/2", "key": { "kty": "RSA", "n": "7DzmTRboW8tE56yCN85maN2I78qWi0gmSUEE8UY100EI-yHv4Yg1niO_djWRYUzkl1VZnWq7QNPLoHrYtLuxugqseDMpDgW5e_y5fn475L6-0_aaYnnZHitFQ5kRaoAXlbuQReaaXs0fhjz-g62f1B9AMYSskB1_abPjWeb4Z5o5u-rO9njrDddqNwybEXy_ojNv1zJkQ-qFE1IMdj4w3DshzmrWk0F-za486d6juIMa-wTdpU5JGnUN97_tcDZBfvrEcL1i30kWf_W7yjAH-t6-KiEkH1EAbnr99l_FwiYwXOXCj_Y1gd5MJC2cfKv4S5SQKu7phlM_k7hSzQTWkw", "e": "AQAB" } } http_version: recorded_at: Sat, 12 Sep 2020 17:27:51 GMT - request: method: post uri: "/order-plz" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiekpoaXNfV0syZXczNkhuRlVrM2F4dyIsInVybCI6Imh0dHBzOi8vMC4wLjAuMDoxNDAwMC9vcmRlci1wbHoiLCJraWQiOiJodHRwczovLzAuMC4wLjA6MTQwMDAvbXktYWNjb3VudC8yIn0","payload":"eyJpZGVudGlmaWVycyI6W3sidHlwZSI6ImRucyIsInZhbHVlIjoiZXhhbXBsZS5jb20ifV19","signature":"gd2-TtYFseMIZftT4A7QCJEw6vHSjpHS4oG3NMa1biUKqFDCphhCDcy3iKerRAMkC4A2vSb9zFANtrISli8yacP5Y4EiviO6aX0c8qmxsQ2MMenZMjQn1nLB6Na79-lUm0LnEe9Q0OgzgjUWxtUjlRFDtdmH_G-Y23cuNU4PNxchB9PFwBbzJ4o4iYKUP5BN3mMWyz1UTFgbbYJ5cbmLYDflSyMuJdgOhlLIkgvkYHjeI1sJGAAM0YLwewK7iNVvA98g0dNWo6heUDwOqbUCikNP5A1n7ed8ugYm4hBPFJ9dShvjvNYBx3nUAoc20caWFcubHW__gq8rIeBc7fs3og"}' headers: User-Agent: - Acme::Client v2.0.6 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-order/3C4it1X7pSHxMYCUjRjW1_jvDTuaOi-BeJoHE8Ug8ks" Replay-Nonce: - UHHezuMpWAZqj_LPLDZuAg Date: - Sat, 12 Sep 2020 17:27:51 GMT Content-Length: - '370' body: encoding: UTF-8 string: |- { "status": "pending", "expires": "2020-09-13T17:27:51Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/3C4it1X7pSHxMYCUjRjW1_jvDTuaOi-BeJoHE8Ug8ks", "authorizations": [ "/authZ/eNpi2tKjqzBxTCLZ70_cbJZvQkhQt4POA7XWeaIAK8U" ] } http_version: recorded_at: Sat, 12 Sep 2020 17:27:51 GMT - request: method: post uri: "/authZ/eNpi2tKjqzBxTCLZ70_cbJZvQkhQt4POA7XWeaIAK8U" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiVUhIZXp1TXBXQVpxal9MUExEWnVBZyIsInVybCI6Imh0dHBzOi8vMC4wLjAuMDoxNDAwMC9hdXRoWi9lTnBpMnRLanF6QnhUQ0xaNzBfY2JKWnZRa2hRdDRQT0E3WFdlYUlBSzhVIiwia2lkIjoiaHR0cHM6Ly8wLjAuMC4wOjE0MDAwL215LWFjY291bnQvMiJ9","payload":"","signature":"6mpcHs_I56mXzh2LYny-LjVVw2OXwTV3pDsqaLqMkjg7UNNfmpJwTbQiFRYHyzc9u2xy2AoNWsf_x1WxMIXtfRvquSJz8xIDPGZYEAbTDSCNJBo3WFU3v9RfFECm3_Bu6t8t22HIxOruzc0N0VO1apwvzbbb42EwWJoqsPL0n3I20Dm9LqOLaNjMcEhRXZswb3rfOMIclrG_qnLFH_KJkYSOHHEx9m6fqQRa1S0NmrQTGvrbOTbAkt7xJ5ojtDBBnRumgMKnptj-HvKHmSZGr9cV7FSba_4H7c8ELsIMqzPg4PbLOcriwy2oYQun0boePg6mqZcsCxYokYSbUDEqZA"}' headers: User-Agent: - Acme::Client v2.0.6 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - 1qahbsZqqDtcHGVbxTioAg Date: - Sat, 12 Sep 2020 17:27:51 GMT Content-Length: - '856' body: encoding: UTF-8 string: |- { "status": "pending", "identifier": { "type": "dns", "value": "example.com" }, "challenges": [ { "type": "http-01", "url": "/chalZ/1JprbgTy-eEqtY51h1tCZuc44fMxT2mI0y_nLyLwxT0", "token": "JCGJaeS3zic0lGJSioOja9l2e9sc2HeDesMfqCAAn_o", "status": "pending" }, { "type": "dns-01", "url": "/chalZ/5d36mB06nbHFzM2Bkwt-UFH3Skniez7lR8eC46afgkY", "token": "JQxR6Um7gXd9G_e8txJ7NjqHdTxRicWSSwPn_gNZc7I", "status": "pending" }, { "type": "tls-alpn-01", "url": "/chalZ/yIhkLK9_WkTehAiJxGVURcRvmVdcuz8IxQJQOL7dt2I", "token": "esP-Qq8Inv7I7OdsF8Wow3I9nIF71LApEwS7CmVTnTM", "status": "pending" } ], "expires": "2020-09-12T18:27:51Z" } http_version: recorded_at: Sat, 12 Sep 2020 17:27:51 GMT - request: method: post uri: "/chalZ/1JprbgTy-eEqtY51h1tCZuc44fMxT2mI0y_nLyLwxT0" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiMXFhaGJzWnFxRHRjSEdWYnhUaW9BZyIsInVybCI6Imh0dHBzOi8vMC4wLjAuMDoxNDAwMC9jaGFsWi8xSnByYmdUeS1lRXF0WTUxaDF0Q1p1YzQ0Zk14VDJtSTB5X25MeUx3eFQwIiwia2lkIjoiaHR0cHM6Ly8wLjAuMC4wOjE0MDAwL215LWFjY291bnQvMiJ9","payload":"e30","signature":"CNFbZRzGe5L8n2Ni-TkFhJQYO3eQN9ohN4gHq56QikDKyCgRGWa95UZlwNruFX6f6nbuIfRl-cO5tybzjDOhDzykepaqgdX7FErK7jYaSwTKHyVM2at9tEqzp9W65PyjE9CF2SMrBvofR8i0OJ_3BZ_0NfEygd3cqRPDmHkWMOBnZ9o275RAUCq_zSSoCq33c7AscJfDWvEYZdnhOcQ3Oy0n5rAC0a5k5v1DQtm309Auv98yXlq9LlP1qRZr6gef4Qjx6ByADsMj3h8Ts8ewyriBvFVlDbu1TBjnpW26pnQYuCGEj7LkoOQkZrxqygyu--1TL7V0xlcyz3jL411-qw"}' headers: User-Agent: - Acme::Client v2.0.6 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - </authZ/eNpi2tKjqzBxTCLZ70_cbJZvQkhQt4POA7XWeaIAK8U>;rel="up" - <>;rel="index" Replay-Nonce: - T4ldqWYYGMrr2GF0qLZjYg Date: - Sat, 12 Sep 2020 17:27:51 GMT Content-Length: - '192' body: encoding: UTF-8 string: |- { "type": "http-01", "url": "/chalZ/1JprbgTy-eEqtY51h1tCZuc44fMxT2mI0y_nLyLwxT0", "token": "JCGJaeS3zic0lGJSioOja9l2e9sc2HeDesMfqCAAn_o", "status": "pending" } http_version: recorded_at: Sat, 12 Sep 2020 17:27:51 GMT - request: method: post uri: "/finalize-order/3C4it1X7pSHxMYCUjRjW1_jvDTuaOi-BeJoHE8Ug8ks" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiVDRsZHFXWVlHTXJyMkdGMHFMWmpZZyIsInVybCI6Imh0dHBzOi8vMC4wLjAuMDoxNDAwMC9maW5hbGl6ZS1vcmRlci8zQzRpdDFYN3BTSHhNWUNValJqVzFfanZEVHVhT2ktQmVKb0hFOFVnOGtzIiwia2lkIjoiaHR0cHM6Ly8wLjAuMC4wOjE0MDAwL215LWFjY291bnQvMiJ9","payload":"eyJjc3IiOiJNSUlDaERDQ0FXd0NBUUl3RmpFVU1CSUdBMVVFQXd3TFpYaGhiWEJzWlM1amIyMHdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFDdVRycG1IZ1hhZUJtTU93U2s3bnhLdWVmbFdxQnZucnRRcFROQ0ZzX3hsbzNVTmh6c3Jfc3ZBRzRnV3hYU1YxOVFnTmRUbGFnS1l1YThXNnZMRWIxeExCRVRyRldKSm45aERfaDFiM205TnltMGd1WWpURkVnWkRHOGJ4dHpZVmtWY1c4MHJrSFV6SDZvMTVTWjRfanNNWkptVUxxVjJlRjEwcUpraU1GOTZuX04xcFdXRDNWaGR5S18tZkpic1BvbnNnS1pMRk1ZZVY0aWtubm9NOE40SVpoUHJFQVNRSi04RHpCb1J2Wk8zWFJYejZrN0dEOXhzYVA1WGxhMzNFX3VTWEZHR0NVRE5wSnRvSXRNTXQxV3BodG95eEhBSkRLMHBpckNSYl9nN1hxempWdUV2LTFyaWtCZEdULW5oSDNNWFdoNGpZa254amFLTFZNM0VMMnZBZ01CQUFHZ0tUQW5CZ2txaGtpRzl3MEJDUTR4R2pBWU1CWUdBMVVkRVFRUE1BMkNDMlY0WVcxd2JHVXVZMjl0TUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFDS21vaTRodkpMOW15ZV9qMFdiRmFSckwzQlM1eHdmelFFSkl4d21pZUxCVTFWQngxUFZiMFdKRVB3VHVodVQ4WHBrWmJsM1lKTHVUUjBZcWdIZmk2QmhrS29Hc0UxeTZJNGdkRUNIcXBicHNJVU5Oay1CTEJraWFMbk1WTWZJZEd4aDlSREZDdFp1b2xqQ0dVWVZrcWhSb2g1SEtrNkdaUC1IdV9vMk5fVFJRaVJsR2dGeTJmcG9fTWVPRkRPMkhnU2ctamhqS1JuaW85NHNoRjNNbXlJa2c4ejFUY3kwdEdZczhPMF9Dc2ZpNFpEUVNoUTJ2bHBKdmJ1b3Z1bENiXzYwMXFndWswaV9uY3BuSHFsWDdRMmRKZUM3YUZJaERsY3dwR2E1TmdwenQwa2x2RHk4bW5KOGJqcmhJdlNkOVk0OVE1ZXJSb3VveWw3QzlSRHpoTkUifQ","signature":"lromIjoGV_45v0RbJ3obEHGXrm6SOcN5n-yQZ6f0Mtk5sNdiPnNlrMVCnn3MI58IHVPD-iDgrU2J3nN40xohpCvqppDuhqhIQKLYECjgWKa93W46AR4Fvxt2liwkcqBx3eUtI9yGThbXy1b-bxN3z42LtEvmmRrRuQ-DIwBGbhSWuJEa1GuPZqQJQu0gPECMrlXSuaxIkPkXAo1jFbJVjpgH4LcUeT7daRtFeDx83ayq7HcAwIRoce30M_-RaeYDPavl9Q7iJ5gBLuYCbpNqmd65nMoT50M4TN0LNOrY7h1G2GLT5nL_5ispwHH70YHe0G-8QHXyCV8zYf19qpxHNw"}' headers: User-Agent: - Acme::Client v2.0.6 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-order/3C4it1X7pSHxMYCUjRjW1_jvDTuaOi-BeJoHE8Ug8ks" Replay-Nonce: - 8Lr76qktno7FYKQfd8BgXQ Date: - Sat, 12 Sep 2020 17:27:52 GMT Content-Length: - '373' body: encoding: UTF-8 string: |- { "status": "processing", "expires": "2020-09-13T17:27:51Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/3C4it1X7pSHxMYCUjRjW1_jvDTuaOi-BeJoHE8Ug8ks", "authorizations": [ "/authZ/eNpi2tKjqzBxTCLZ70_cbJZvQkhQt4POA7XWeaIAK8U" ] } http_version: recorded_at: Sat, 12 Sep 2020 17:27:52 GMT - request: method: post uri: "/my-order/3C4it1X7pSHxMYCUjRjW1_jvDTuaOi-BeJoHE8Ug8ks" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiOExyNzZxa3RubzdGWUtRZmQ4QmdYUSIsInVybCI6Imh0dHBzOi8vMC4wLjAuMDoxNDAwMC9teS1vcmRlci8zQzRpdDFYN3BTSHhNWUNValJqVzFfanZEVHVhT2ktQmVKb0hFOFVnOGtzIiwia2lkIjoiaHR0cHM6Ly8wLjAuMC4wOjE0MDAwL215LWFjY291bnQvMiJ9","payload":"","signature":"fdPL2PEIQiAcGwDX-Wc32nJ3m6egS0J_XkG0jvMLb47_C1ts0S94YGBipOU8AsxkDuvsyjZHlQLOhsG3hvqIXaOL0PWWQOzqJJMslqsj9TEuGuB1LTM5rp4YAZ5jJnlw1wisR-23p5GNU8t-VAIdLxXnM3pUtLpfgHdNs2cBludOoJtO8j4uEH-mhOhln1NQjkAuCS4dXokyh6ObHU9xFCPVXjY2wqsbiCBVj9A3JVZoGhC02QcBULaaXhRgYrlp4Ci67NfHFCKvQM6MIhHr1AvJmvOoNiT9EXOdQmHWVRFbIj_bg31OkR8z-Tda-ZdyFnhPlgWfGzkpBbsUCz8ZpA"}' headers: User-Agent: - Acme::Client v2.0.6 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - 7Xc1KOpyDqitD-XQQ1FaKQ Date: - Sat, 12 Sep 2020 17:27:52 GMT Content-Length: - '434' body: encoding: UTF-8 string: |- { "status": "valid", "expires": "2020-09-13T17:27:51Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/3C4it1X7pSHxMYCUjRjW1_jvDTuaOi-BeJoHE8Ug8ks", "authorizations": [ "/authZ/eNpi2tKjqzBxTCLZ70_cbJZvQkhQt4POA7XWeaIAK8U" ], "certificate": "/certZ/3a815d9ff4a1dcc1" } http_version: recorded_at: Sat, 12 Sep 2020 17:27:52 GMT - request: method: post uri: "/certZ/3a815d9ff4a1dcc1" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiN1hjMUtPcHlEcWl0RC1YUVExRmFLUSIsInVybCI6Imh0dHBzOi8vMC4wLjAuMDoxNDAwMC9jZXJ0Wi8zYTgxNWQ5ZmY0YTFkY2MxIiwia2lkIjoiaHR0cHM6Ly8wLjAuMC4wOjE0MDAwL215LWFjY291bnQvMiJ9","payload":"","signature":"bCRjR5QXh4QLCaaNKP0MnlFa1mB4hRIUMJzLFAHgVBy1RRJAMwHh7_zs8tiYEe_Z_MGI9yEIXXevB1lAGZc-5FLlkfvaY_kQNSSWoX_TtDsM9DXrbYJxNdS6VOEpb9KGwj0EZVvKYWgb4L3W1-RtqLdAaIJW8X7M5PcHcV1_5V1qSUazG_mDpdg3I80MJArcHEhDOugs76uaR6pSFENVh5TU6kERNbQNGoaZXAx4w0cFBhkiB6vJaBRa2_JaeINWgdM12Zptrbh1C8EcXGm0M1CZ-mZBKxmZD28eczewhFv1v4UpUPIatkfDrgtsv_l6fW6j-a4sHUmJrsJMpU-cJg"}' headers: User-Agent: - Acme::Client v2.0.6 (https://github.com/unixcharles/acme-client) Accept: - application/pem-certificate-chain Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/pem-certificate-chain; charset=utf-8 Link: - </certZ/3a815d9ff4a1dcc1/alternate/1>;rel="alternate" - <>;rel="index" Replay-Nonce: - C8uOsJ1UC1WWYKZgISuhMw Date: - Sat, 12 Sep 2020 17:27:52 GMT Transfer-Encoding: - chunked body: encoding: UTF-8 string: | -----BEGIN CERTIFICATE----- MIIDWTCCAkGgAwIBAgIIOoFdn/Sh3MEwDQYJKoZIhvcNAQELBQAwKDEmMCQGA1UE AxMdUGViYmxlIEludGVybWVkaWF0ZSBDQSA3YzEzZWQwHhcNMjAwOTEyMTcyNzUy WhcNMjUwOTEyMTcyNzUyWjAWMRQwEgYDVQQDEwtleGFtcGxlLmNvbTCCASIwDQYJ KoZIhvcNAQEBBQADggEPADCCAQoCggEBAK5OumYeBdp4GYw7BKTufEq55+VaoG+e u1ClM0IWz/GWjdQ2HOyv+y8AbiBbFdJXX1CA11OVqApi5rxbq8sRvXEsEROsVYkm f2EP+HVveb03KbSC5iNMUSBkMbxvG3NhWRVxbzSuQdTMfqjXlJnj+OwxkmZQupXZ 4XXSomSIwX3qf83WlZYPdWF3Ir/58luw+ieyApksUxh5XiKSeegzw3ghmE+sQBJA n7wPMGhG9k7ddFfPqTsYP3Gxo/leVrfcT+5JcUYYJQM2km2gi0wy3VamG2jLEcAk MrSmKsJFv+DterONW4S/7WuKQF0ZP6eEfcxdaHiNiSfGNootUzcQva8CAwEAAaOB mDCBlTAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUF BwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFFET5rsiwKCN+YyW9GNrSPNGnp7D MB8GA1UdIwQYMBaAFGnRgEZnF6ZdOw0D2IttAHN/g/+4MBYGA1UdEQQPMA2CC2V4 YW1wbGUuY29tMA0GCSqGSIb3DQEBCwUAA4IBAQA+3r7XE/xnPAFARQhs2zvD+Okw ROWTwYlNKTbc503mS0RszwHYC5WmERZpHTmkbbboQGo+f6i+OADwv/H/5X+zV537 mIL2A7VIVOdA17sLFLGdJ5VPAxu5uFmFWMbKZSNOZGJx9pP4eUA4SbH1hQr5n1vZ uXOjaqMxQkrJ5B+e17bCptgrheU1eD0FQClQBFBVunhS1XxHVNuKt5TzSVZ796/W Zy946bNTSFfTMg2lia9IKgQrqOTxjmyb3mMkLXLFj9GIvz1ckhcUNLuhERpWPLxZ uxi11v31Rw3vkNBowPDfEAJgx8qWKPbgHX7inygRX9dvB420S6CeEaVUbMaT -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDUDCCAjigAwIBAgIIeEmZ+cfJIIswDQYJKoZIhvcNAQELBQAwIDEeMBwGA1UE AxMVUGViYmxlIFJvb3QgQ0EgNjBjZWM0MCAXDTIwMDkxMjE3MjQ0M1oYDzIwNTAw OTEyMTcyNDQzWjAoMSYwJAYDVQQDEx1QZWJibGUgSW50ZXJtZWRpYXRlIENBIDdj MTNlZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOD3cZac4SO+SVA7 YT37naFSRImuyZVpwrHwmPof0h9AYJM1yctchYZ/ncQ7r3/rhmWi3oDh7zrP4dS5 Sdp8KB+WcF2QdP7XkK8nuq1wjTZCOhqPv+0ccX0AwoUZOfzmODPBasqdlW82QlPJ ITc4aFzSE8wcE222BKq8FRojza1uZWf1FyoPyBHNkubSfLRPENa5LSsQ/NJZR3mU jPZUBaTlegsWVShPfi9m2RQQVyE/+dtjfvWVyxvdeOpy5vSwFqU6o0z+uq0hy7B0 4sU9Trwl4e+JmCDMFBs1obfaSLi3DvZEJiRPajQIVK1lfB5IumUtz7OBx0fapF/d EpxuBOsCAwEAAaOBgzCBgDAOBgNVHQ8BAf8EBAMCAoQwHQYDVR0lBBYwFAYIKwYB BQUHAwEGCCsGAQUFBwMCMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFGnRgEZn F6ZdOw0D2IttAHN/g/+4MB8GA1UdIwQYMBaAFGqsx6g+EhRnknk3uKHNnXyG8PzV MA0GCSqGSIb3DQEBCwUAA4IBAQBKNHm2WbIhd93fZqC64H34LvTdXwftFmPtQeIB 9j0jByJAowJoOPHzQuVjKpgAxWRwmD8ETq0Ahk9LduBzD9J+gXopxM6vdvV0l2up IFVG2s3oOwOtiziE5X/+bEl3K5n0nWQS9lHQ91+L9NEXFH1QhqbQDifZTIXhjFS9 4LQ6GRNoBK/XiqcE8zp3FkSriiVwACKWSH6O+dhq0uz+Mr+ce6pgPaVRBycDhNNA Ucx2SZSXqeVkp0AF5I7J1/DGOeRYIzc0a9z6+OT32xrtFsnC/0TuxDT0RdSdKPsQ nFAMSqkGIzVVUX34YfMQ7HKyxLs9mTbwl+8Y+06bk7AKQJGi -----END CERTIFICATE----- http_version: recorded_at: Sat, 12 Sep 2020 17:27:52 GMT - request: method: post uri: "/certZ/3a815d9ff4a1dcc1/alternate/1" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiQzh1T3NKMVVDMVdXWUtaZ0lTdWhNdyIsInVybCI6Imh0dHBzOi8vMC4wLjAuMDoxNDAwMC9jZXJ0Wi8zYTgxNWQ5ZmY0YTFkY2MxL2FsdGVybmF0ZS8xIiwia2lkIjoiaHR0cHM6Ly8wLjAuMC4wOjE0MDAwL215LWFjY291bnQvMiJ9","payload":"","signature":"Z910EaLXPVGQGqoHIkZaMesc5NuuuX9MWuo0bbvmFXvghRCa50N1w3e80kQXJeMQKDAQ5vPxbpy5alsW8WqDgnzsWqJau0C3mG0vBLP4ll37_oZs0h4Wm2x-jn1qIzuDjfcqyonFdp4RohH6r85vEYV4PThkhMs_UawPgLcOXny86wTaY52h8l9JnuzMOwzcJRKt0y6id0Qniu1Z2hyVua7dEhnqEPnOdIQ7KmTt3aeeGU9VllYKqoNYzBgCHd91_gY4wsz6nFqKHfJ0kf8jd7luU3y8ZlS6Mx3HYIq9oUqq045YHpylnDCpa-fu_tNJHnnJ5z2BjHQjvWFLZCKJmQ"}' headers: User-Agent: - Acme::Client v2.0.6 (https://github.com/unixcharles/acme-client) Accept: - application/pem-certificate-chain Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/pem-certificate-chain; charset=utf-8 Link: - </certZ/3a815d9ff4a1dcc1>;rel="alternate" - <>;rel="index" Replay-Nonce: - SiYx1IGditvok8w6Np-MsA Date: - Sat, 12 Sep 2020 17:27:54 GMT Transfer-Encoding: - chunked body: encoding: UTF-8 string: | -----BEGIN CERTIFICATE----- MIIDWTCCAkGgAwIBAgIIOoFdn/Sh3MEwDQYJKoZIhvcNAQELBQAwKDEmMCQGA1UE AxMdUGViYmxlIEludGVybWVkaWF0ZSBDQSA3YzEzZWQwHhcNMjAwOTEyMTcyNzUy WhcNMjUwOTEyMTcyNzUyWjAWMRQwEgYDVQQDEwtleGFtcGxlLmNvbTCCASIwDQYJ KoZIhvcNAQEBBQADggEPADCCAQoCggEBAK5OumYeBdp4GYw7BKTufEq55+VaoG+e u1ClM0IWz/GWjdQ2HOyv+y8AbiBbFdJXX1CA11OVqApi5rxbq8sRvXEsEROsVYkm f2EP+HVveb03KbSC5iNMUSBkMbxvG3NhWRVxbzSuQdTMfqjXlJnj+OwxkmZQupXZ 4XXSomSIwX3qf83WlZYPdWF3Ir/58luw+ieyApksUxh5XiKSeegzw3ghmE+sQBJA n7wPMGhG9k7ddFfPqTsYP3Gxo/leVrfcT+5JcUYYJQM2km2gi0wy3VamG2jLEcAk MrSmKsJFv+DterONW4S/7WuKQF0ZP6eEfcxdaHiNiSfGNootUzcQva8CAwEAAaOB mDCBlTAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUF BwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFFET5rsiwKCN+YyW9GNrSPNGnp7D MB8GA1UdIwQYMBaAFGnRgEZnF6ZdOw0D2IttAHN/g/+4MBYGA1UdEQQPMA2CC2V4 YW1wbGUuY29tMA0GCSqGSIb3DQEBCwUAA4IBAQA+3r7XE/xnPAFARQhs2zvD+Okw ROWTwYlNKTbc503mS0RszwHYC5WmERZpHTmkbbboQGo+f6i+OADwv/H/5X+zV537 mIL2A7VIVOdA17sLFLGdJ5VPAxu5uFmFWMbKZSNOZGJx9pP4eUA4SbH1hQr5n1vZ uXOjaqMxQkrJ5B+e17bCptgrheU1eD0FQClQBFBVunhS1XxHVNuKt5TzSVZ796/W Zy946bNTSFfTMg2lia9IKgQrqOTxjmyb3mMkLXLFj9GIvz1ckhcUNLuhERpWPLxZ uxi11v31Rw3vkNBowPDfEAJgx8qWKPbgHX7inygRX9dvB420S6CeEaVUbMaT -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDUDCCAjigAwIBAgIIHFH1QZ3HDNwwDQYJKoZIhvcNAQELBQAwIDEeMBwGA1UE AxMVUGViYmxlIFJvb3QgQ0EgNzY5MjIwMCAXDTIwMDkxMjE3MjQ0M1oYDzIwNTAw OTEyMTcyNDQzWjAoMSYwJAYDVQQDEx1QZWJibGUgSW50ZXJtZWRpYXRlIENBIDdj MTNlZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOD3cZac4SO+SVA7 YT37naFSRImuyZVpwrHwmPof0h9AYJM1yctchYZ/ncQ7r3/rhmWi3oDh7zrP4dS5 Sdp8KB+WcF2QdP7XkK8nuq1wjTZCOhqPv+0ccX0AwoUZOfzmODPBasqdlW82QlPJ ITc4aFzSE8wcE222BKq8FRojza1uZWf1FyoPyBHNkubSfLRPENa5LSsQ/NJZR3mU jPZUBaTlegsWVShPfi9m2RQQVyE/+dtjfvWVyxvdeOpy5vSwFqU6o0z+uq0hy7B0 4sU9Trwl4e+JmCDMFBs1obfaSLi3DvZEJiRPajQIVK1lfB5IumUtz7OBx0fapF/d EpxuBOsCAwEAAaOBgzCBgDAOBgNVHQ8BAf8EBAMCAoQwHQYDVR0lBBYwFAYIKwYB BQUHAwEGCCsGAQUFBwMCMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFGnRgEZn F6ZdOw0D2IttAHN/g/+4MB8GA1UdIwQYMBaAFBH2SDFcPxGK4EhVjcjBEQGX9Jav MA0GCSqGSIb3DQEBCwUAA4IBAQCESm3u8dK/WvHSYGcb8arN4AMnEArVukP8oPuX xWRSgeVq5nurtAIP6skDjU/anGVph1CP7lEQ/nkCDRZnxp4ad15a1vt5IsMzztTu dTfXxdICHp5roB8hgTx3R5hTseBgrAtW4aeaPizDas41TT+cZNWOBrmWEir6xhoY iztRmEXf7+WhjSFtkYah73uLfEhOaWKyMaWcx/I216XUUBOKfeB4r6D09e8J8FYG yzluRWeJSQBInns0CfkGxIbJi+H3OyGMPtGcHXVLdweZarE1fhsXIGAFjrNytD5r /FNrsit8gt5COknW3JtahIF7j/l3YWpmSx+9D1bDF1EHIvsm -----END CERTIFICATE----- http_version: recorded_at: Sat, 12 Sep 2020 17:27:54 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/challenge_key_authorization.yml000066400000000000000000000177241411343312700251420ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:25 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:25 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - 1uet0IOxo1fmy8mHSH9h4A Date: - Thu, 10 Oct 2019 03:08:25 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:25 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzM4NCIsIm5vbmNlIjoiMXVldDBJT3hvMWZteThtSFNIOWg0QSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImNydiI6IlAtMzg0Iiwia3R5IjoiRUMiLCJ4IjoiU3dibGZpLXRsQ29uVGdETGowd1U2eWY2VGNZV1NZVjZQSElCR2JVWVdHWktmbnZlcXRBSXNaTnNheUgxS3lINiIsInkiOiJQR3FIMHpKaFRaLWZQS1pab0RXS3lSdFVQS285d2l1ODc1blBDNll6LVZqTVphdmxJbnlZcXViYTZRZFloZXJqIn19","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"19RIwlHj0OByZABM57jm-ap5P64UpD991D0Vtwr4ZECNKjc2HjjCce4H1GxMv9D9XkNJ1iOFy2dfmu9ind8awluNGsxzM2hQVgoU9udfTKQoTNjjsmKHW7of4IsMSY42"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/78" Replay-Nonce: - HH3i7erQdQtYF4uZ-Bwd1Q Date: - Thu, 10 Oct 2019 03:08:25 GMT Content-Length: - '353' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/78", "key": { "kty": "EC", "crv": "P-384", "x": "Swblfi-tlConTgDLj0wU6yf6TcYWSYV6PHIBGbUYWGZKfnveqtAIsZNsayH1KyH6", "y": "PGqH0zJhTZ-fPKZZoDWKyRtUPKo9wiu875nPC6Yz-VjMZavlInyYquba6QdYherj" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:25 GMT - request: method: post uri: "/order-plz" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzM4NCIsIm5vbmNlIjoiSEgzaTdlclFkUXRZRjR1Wi1Cd2QxUSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9vcmRlci1wbHoiLCJraWQiOiJodHRwczovLzE5Mi4xNjguNTYuOTM6MTQwMDAvbXktYWNjb3VudC83OCJ9","payload":"eyJpZGVudGlmaWVycyI6W3sidHlwZSI6ImRucyIsInZhbHVlIjoiZXhhbXBsZS5jb20ifV19","signature":"fpepD5SuO7amQBZlPfqQVdGotg3sbChsfzP6gpEwy9YSnbgzE4DanMx6rRIEtWXjHa8_LDu3dAkyPEBK1Dv65sD9spGtLKsknR9HBOjvfrYrG3gSOewCCnwFp1W5ThOQ"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-order/z2hgt4gxxh4BXCK-dfSBZbGUypaBwkNgcCAWymVOGgA" Replay-Nonce: - gJZR_q0rpplZmWoRMZb1-g Date: - Thu, 10 Oct 2019 03:08:25 GMT Content-Length: - '382' body: encoding: UTF-8 string: |- { "status": "pending", "expires": "2019-10-11T03:08:25Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/z2hgt4gxxh4BXCK-dfSBZbGUypaBwkNgcCAWymVOGgA", "authorizations": [ "/authZ/JClXa41a_GoUO7fIdWgcZgUAeXqFQg5NPRPAPlmjubU" ] } http_version: recorded_at: Thu, 10 Oct 2019 03:08:25 GMT - request: method: post uri: "/authZ/JClXa41a_GoUO7fIdWgcZgUAeXqFQg5NPRPAPlmjubU" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzM4NCIsIm5vbmNlIjoiZ0paUl9xMHJwcGxabVdvUk1aYjEtZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9hdXRoWi9KQ2xYYTQxYV9Hb1VPN2ZJZFdnY1pnVUFlWHFGUWc1TlBSUEFQbG1qdWJVIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNzgifQ","payload":"","signature":"dmRnymnQlLJ8I1e1HcS0jJ28kj3NF0k6pgtomUBtfvBE65CGzdHVBAMFaODwydIvgFBGG1aOKpCBmD-_VYycZPxue5vGy4DbVb9GwQt16R4S6rhAyh5D5fYEMKW4YrTY"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - j57YiNaq0dB580yTxcKM9g Date: - Thu, 10 Oct 2019 03:08:25 GMT Content-Length: - '874' body: encoding: UTF-8 string: |- { "status": "pending", "identifier": { "type": "dns", "value": "example.com" }, "challenges": [ { "type": "tls-alpn-01", "url": "/chalZ/wex9skdk0z1o9Q8JhdqF7OEgznaAuzCcBWcjf8pbUEE", "token": "iqJmhmRdreeAdLrBNiFoMsidzOICIkcz6WXyxx7bJWY", "status": "pending" }, { "type": "http-01", "url": "/chalZ/rbfVhgYP1XAEUnfA7Bv6M8RaHJvacY8_YD937Wjh4gk", "token": "epEnxX7EFrmkgIXf0TceX7-6KUqmIfMvn3vBzDTXGUA", "status": "pending" }, { "type": "dns-01", "url": "/chalZ/lxlgaZmQ-nTpXB2yVqJ8deHx29z0LRVPgd9z17mlys4", "token": "HpKtXPjeoM1d3sWl7KIde9eR6huX03DWxz2Tx8Z4H08", "status": "pending" } ], "expires": "2019-10-10T04:08:25Z" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:25 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/challenge_reload.yml000066400000000000000000000223601411343312700226300ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:27 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:27 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - Hi2XaqmZRBtPAZWUNScLHw Date: - Thu, 10 Oct 2019 03:08:27 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:27 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIm5vbmNlIjoiSGkyWGFxbVpSQnRQQVpXVU5TY0xIdyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImNydiI6IlAtMjU2Iiwia3R5IjoiRUMiLCJ4IjoiOURlQkxsQ2xHX1g1c1ItLXpLUk5weDhtcExwZG5hRlhQOVJEWjVNUlBoOCIsInkiOiJJenFJcmttQ2tjeE9oMEgxVmczWTBjcm9CcHYzamotcWtXcWt5VFhOQnVFIn19","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"03DfNcoZaWj38-q9GCeTjVnz6VXRXURke8OSyjZCi8zhWzm5XXu8N0ljU7FZPyMaaOgbwwJjJNDCa4zPeKOtdQ"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/81" Replay-Nonce: - NmFqvyjKMSoqXHw5ava5Dg Date: - Thu, 10 Oct 2019 03:08:27 GMT Content-Length: - '311' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/81", "key": { "kty": "EC", "crv": "P-256", "x": "9DeBLlClG_X5sR--zKRNpx8mpLpdnaFXP9RDZ5MRPh8", "y": "IzqIrkmCkcxOh0H1Vg3Y0croBpv3jj-qkWqkyTXNBuE" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:27 GMT - request: method: post uri: "/order-plz" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIm5vbmNlIjoiTm1GcXZ5aktNU29xWEh3NWF2YTVEZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9vcmRlci1wbHoiLCJraWQiOiJodHRwczovLzE5Mi4xNjguNTYuOTM6MTQwMDAvbXktYWNjb3VudC84MSJ9","payload":"eyJpZGVudGlmaWVycyI6W3sidHlwZSI6ImRucyIsInZhbHVlIjoiZXhhbXBsZS5jb20ifV19","signature":"DzgUyqWR4WNo2SHkdwTSLjLFPhsPeIeEgoFtYf5NP2iSEs7mvDjFJ-c83L4la6NFu_BzAHvS_zEx3Ux-zKhn6A"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-order/EVfGqPMKUgaxHS8EtW2ce9XhFF1HxoJKEVPaCmW_se8" Replay-Nonce: - bQbFamRlE6cDgVpvhrzK8g Date: - Thu, 10 Oct 2019 03:08:27 GMT Content-Length: - '382' body: encoding: UTF-8 string: |- { "status": "pending", "expires": "2019-10-11T03:08:27Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/EVfGqPMKUgaxHS8EtW2ce9XhFF1HxoJKEVPaCmW_se8", "authorizations": [ "/authZ/_s5ty6FvKJRTLPB4SU37CF9AzHu0n67qqoxkHXHVgBI" ] } http_version: recorded_at: Thu, 10 Oct 2019 03:08:27 GMT - request: method: post uri: "/authZ/_s5ty6FvKJRTLPB4SU37CF9AzHu0n67qqoxkHXHVgBI" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIm5vbmNlIjoiYlFiRmFtUmxFNmNEZ1Zwdmhyeks4ZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9hdXRoWi9fczV0eTZGdktKUlRMUEI0U1UzN0NGOUF6SHUwbjY3cXFveGtIWEhWZ0JJIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvODEifQ","payload":"","signature":"9z8v4ptoCg2nAOCQwFhs26r-3iMNRl922gxMwXqC_yBRQPQ9PJnpS6qb5QIII1X81GJQEQsvBP61Tppiu4QJCQ"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - OhBg8mdN01gcxc66OSbCag Date: - Thu, 10 Oct 2019 03:08:27 GMT Content-Length: - '874' body: encoding: UTF-8 string: |- { "status": "pending", "identifier": { "type": "dns", "value": "example.com" }, "challenges": [ { "type": "dns-01", "url": "/chalZ/uMuD8VZ42GbBylupH_zQPccMQa02ksTMIAW4dbRZUNI", "token": "K7_413C1RsswXE1uuE5B8GtyZB3jNMZalHba3-50skg", "status": "pending" }, { "type": "http-01", "url": "/chalZ/EBQm415ptwxEyho50C0mV6yQqCNJABDsDvZBcVYOtB0", "token": "IBKWRuMXlhlDdNvkD58oEoUpjWrKEWk7yeX1bUxWJ6M", "status": "pending" }, { "type": "tls-alpn-01", "url": "/chalZ/s1egRAAbJ3Bf0JHxfPhrxzDIsEZWWZcTiUcJ41Py0zg", "token": "tPH_Z1d1k-t2S54V6a5A7GPxJQZaHKjgJ-zAOgP3uqQ", "status": "pending" } ], "expires": "2019-10-10T04:08:27Z" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:27 GMT - request: method: post uri: "/chalZ/EBQm415ptwxEyho50C0mV6yQqCNJABDsDvZBcVYOtB0" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIm5vbmNlIjoiT2hCZzhtZE4wMWdjeGM2Nk9TYkNhZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9jaGFsWi9FQlFtNDE1cHR3eEV5aG81MEMwbVY2eVFxQ05KQUJEc0R2WkJjVllPdEIwIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvODEifQ","payload":"","signature":"ZYnhlQ17IPUaMVz_jLjbG4CdPb9u73WXNthaXoU7GzKvEQ_WSIZbXiP2SDNPHuUFP_c96VP_ikCPEbjA1ZNnLg"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - hBksXhN5SKbmmHSiviLZ9Q Date: - Thu, 10 Oct 2019 03:08:27 GMT Content-Length: - '198' body: encoding: UTF-8 string: |- { "type": "http-01", "url": "/chalZ/EBQm415ptwxEyho50C0mV6yQqCNJABDsDvZBcVYOtB0", "token": "IBKWRuMXlhlDdNvkD58oEoUpjWrKEWk7yeX1bUxWJ6M", "status": "pending" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:27 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/challenge_verify_failure.yml000066400000000000000000000321211411343312700243710ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:27 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:27 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - aOau2u4NfhksDPB74WHVuA Date: - Thu, 10 Oct 2019 03:08:27 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:27 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiYU9hdTJ1NE5maGtzRFBCNzRXSFZ1QSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImUiOiJBUUFCIiwia3R5IjoiUlNBIiwibiI6InhUd2YyZElQMzRHdG16Tk5BZk94bWlKQi02ZzhjT2NGOFFqTUZkaGdIVmliUjlzY0NMQXRRaUFMS2lTU1RjdUc3R1ZFdW5aUlUzVm1xcWI1TFJZTGdQdXRtUDBfT1JwSGxQQnlGNXVMT0d5UW94NFJmT1huZVk4OThUMkpXb2FkQ2pqN04zWVhVS3JWU0xiZ2lJZUF6WEpRTndaMWdMQVVxdlhKVlY4VXZReERQdTNkczY4amg0T05XV0pqbXVMamZyanZuakFmSTFVZjM0bnRmNjRzU3FaYVZQcXBLa2xHdEZjeHpvYXJmQVRsZm44QUJneTd0cng2VkFWem1VYmVPdUlZaUpvbGdqYkF5ODZ0ZFdZQ2lIVDdEVy1aQ2ZOWnplOFFOU09MekRzRXA1TUVTT1FtbjlhZHZVQUE1M2hNOHBZV2ZJTXY1cC02NnJOYjZnTU11dyJ9fQ","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"Wfl-0vihqhwps_plVjsJUS9_BvgaBG6L99rh5SAjaW__vqnSDd-aZx5hyOB_9pW2aKfju9owUM0gZE13TE3veWWE41q9insAH5hvciZ8NLF9AitTzx1U-Rb23K2DaEsqSkD3y3bMFIpijFlakMfYQvAiKaW5-z_WyLhcSJ7RJL-Sq0GiR6-XvKKwx2lphENK00bH5bxn_hwnVywaOQlchEn-I0oAnDh6aoPPvLnseB-BBOzFyZuMttIdjJ1pYpR-Za7myXULcWpf58gzIEq9wUbOaxAix0wV40502ixtv_TLig376d5DxWLtMmov89E-ynsco17FvcMueG8HSQk8BQ"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/80" Replay-Nonce: - Szcb3TPj6xKJWMeAYWcCnQ Date: - Thu, 10 Oct 2019 03:08:27 GMT Content-Length: - '550' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/80", "key": { "kty": "RSA", "n": "xTwf2dIP34GtmzNNAfOxmiJB-6g8cOcF8QjMFdhgHVibR9scCLAtQiALKiSSTcuG7GVEunZRU3Vmqqb5LRYLgPutmP0_ORpHlPByF5uLOGyQox4RfOXneY898T2JWoadCjj7N3YXUKrVSLbgiIeAzXJQNwZ1gLAUqvXJVV8UvQxDPu3ds68jh4ONWWJjmuLjfrjvnjAfI1Uf34ntf64sSqZaVPqpKklGtFcxzoarfATlfn8ABgy7trx6VAVzmUbeOuIYiJolgjbAy86tdWYCiHT7DW-ZCfNZze8QNSOLzDsEp5MESOQmn9advUAA53hM8pYWfIMv5p-66rNb6gMMuw", "e": "AQAB" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:27 GMT - request: method: post uri: "/order-plz" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiU3pjYjNUUGo2eEtKV01lQVlXY0NuUSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9vcmRlci1wbHoiLCJraWQiOiJodHRwczovLzE5Mi4xNjguNTYuOTM6MTQwMDAvbXktYWNjb3VudC84MCJ9","payload":"eyJpZGVudGlmaWVycyI6W3sidHlwZSI6ImRucyIsInZhbHVlIjoiZXhhbXBsZS5jb20ifV19","signature":"eG7_iEDJRE532XKmQYmTg35ipy5FwnpyLYjAvLCajQO28Do_p4SfPNq9IMP_mxBK_pqdViJSWMpLy_Jt4fuCinenIqaiq9IsJ_XEQdM_AUZCYiG-mqSAMY4uAAftx4bTBVy4w9AxwZX0ofUXHb0IDppVD-9Y_SyMC9nyUTfJ8b7IA8BAHyuiHMYd3rqU5P6kw89apm0WDNPmBQPBGoyOgvEFpETR99IVhVQ1p7kqShWZhmavj89q6wivV5t8Gr3Vi5c_Sm_Ktb2WqL5FKg940UZ7G2HgaPDkRZxpSZaMafJHUQYCiKSbmffVNF7Ckru27YlXVdHlJy2i1hX6pvVuSw"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-order/ABfFBx-lx1_hQjnnkiJN-zIL03aormeBuAa0PACIxao" Replay-Nonce: - SvA3hj_qpbkI9WEC_df9Tg Date: - Thu, 10 Oct 2019 03:08:27 GMT Content-Length: - '382' body: encoding: UTF-8 string: |- { "status": "pending", "expires": "2019-10-11T03:08:27Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/ABfFBx-lx1_hQjnnkiJN-zIL03aormeBuAa0PACIxao", "authorizations": [ "/authZ/eovLzlwkOcXT-5SbD75u9USDRgRJorH74taxgIKvbww" ] } http_version: recorded_at: Thu, 10 Oct 2019 03:08:27 GMT - request: method: post uri: "/authZ/eovLzlwkOcXT-5SbD75u9USDRgRJorH74taxgIKvbww" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiU3ZBM2hqX3FwYmtJOVdFQ19kZjlUZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9hdXRoWi9lb3ZMemx3a09jWFQtNVNiRDc1dTlVU0RSZ1JKb3JINzR0YXhnSUt2Ynd3Iiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvODAifQ","payload":"","signature":"ngrHsRhlr-ugudHTUlTUfOJjSUw8AxbMJBcTYiJqotTV6zIujx50pu8aTsH5rc2ZOjBhwPlPqiavjS9LRNROOSWgjv48aZKeTuA5QFxPM7LOcbpJyffBcCPqyF-5dN4qSwTDFSLkHVSJJ5Y-nMAT3K8V8I_xkHrjrKAD2XwsVT1ZVszyDOIisYdnRJyIzYtGYR5uBjw5lTMmvD19t8CqHmQ3u-OpvyqsM31VW0uCx5I2p1EtxB_PV5yL7TQX7lx0Bpges2PaXmSCspDtJUH6PaFK2lVyGn_GmwnvBqQpgUscPzxwj7Pr-9xNQvBwixLQyU5liYppyASljvrgk8Hweg"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - MO1ZZ9THGA_47O6c4hCrog Date: - Thu, 10 Oct 2019 03:08:27 GMT Content-Length: - '874' body: encoding: UTF-8 string: |- { "status": "pending", "identifier": { "type": "dns", "value": "example.com" }, "challenges": [ { "type": "http-01", "url": "/chalZ/I43-dMv8_NJheN5GIQLmbJsL5tzeUG0J4pOx1SHUbmQ", "token": "hogtYco5d5T9p14e1cd_4dzhKuKae3iHPsKLHFUeQCY", "status": "pending" }, { "type": "dns-01", "url": "/chalZ/3aqZ2-iNNFwbTRsTsP9A_c6MYe0mgsQOA8topXJhFq4", "token": "PmBKpwww4De08wZhK_OfNQFwm3r2lPMzAPe5yYb3VSE", "status": "pending" }, { "type": "tls-alpn-01", "url": "/chalZ/t5GTxGGGjDSiM-zDYLk2f1qiJdei-wvdrHDHZuTC2KA", "token": "RUnoWYlKDhCA0XWcdViiT7iISSqMH4EQcwmE-9W3EDw", "status": "pending" } ], "expires": "2019-10-10T04:08:27Z" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:27 GMT - request: method: post uri: "/chalZ/I43-dMv8_NJheN5GIQLmbJsL5tzeUG0J4pOx1SHUbmQ" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiTU8xWlo5VEhHQV80N082YzRoQ3JvZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9jaGFsWi9JNDMtZE12OF9OSmhlTjVHSVFMbWJKc0w1dHplVUcwSjRwT3gxU0hVYm1RIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvODAifQ","payload":"e30","signature":"PhO6XuTiphO5rAlhTMzS7M5bdsCt18FY0gXhFiYAArTzBgck9VwnPehbe9NbJ2uAyBjGtvmpsodBZGNNGQ3e-cIxyZOI9SckFm9xKY7yM57I_POO5TuHTqzWUCfZGPaMO4xt2LkEVrOssUXUmCAAhXhAjtgejicze0Uh8u48qSTtkfPd2gEewen-ZAidHeHTX6JEeSpoKba2xBxFVbCLDDadQMfT02n-8H73kcIlEB_iTy2md3Emw69Rqn0cNHb5XvWBU_OIXs5Oh3nE1hmfjvDkchVndNdVfPAiSfVeDqoohBvoNt0iTSFcTbLTG_PQ5q_gF0LVWE7MMEhpM3nkbA"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - </authZ/eovLzlwkOcXT-5SbD75u9USDRgRJorH74taxgIKvbww>;rel="up" - <>;rel="index" Replay-Nonce: - MtM7BhXqj6Lg_M2smEHFjA Date: - Thu, 10 Oct 2019 03:08:27 GMT Content-Length: - '198' body: encoding: UTF-8 string: |- { "type": "http-01", "url": "/chalZ/I43-dMv8_NJheN5GIQLmbJsL5tzeUG0J4pOx1SHUbmQ", "token": "hogtYco5d5T9p14e1cd_4dzhKuKae3iHPsKLHFUeQCY", "status": "pending" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:27 GMT - request: method: post uri: "/chalZ/I43-dMv8_NJheN5GIQLmbJsL5tzeUG0J4pOx1SHUbmQ" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiTXRNN0JoWHFqNkxnX00yc21FSEZqQSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9jaGFsWi9JNDMtZE12OF9OSmhlTjVHSVFMbWJKc0w1dHplVUcwSjRwT3gxU0hVYm1RIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvODAifQ","payload":"","signature":"OOYg4nAy1VJG_CSBbTojCY8m_P05XvJMjL5EeJoQ6RXQMazEVnjpPrMky-Aa6jfS-B1JrxkjD5m8WOQNzvNlvGqG-BC8QQ9Ie71okQHdsbzFjIW1jkB0HRxY4nNTf90tBeBR1QxHCMIdVm7Ho6Smx53-Juqlfr0Rz_bLh9mol59fpmjymIOxYA1L2ik7ZpUq_sOTnet_kBOR2AKA7Krlw5FI9AsD8-nIbuQA3_iQYRe05egF6wadDrgvYFx_0HZBCfqQPxqACXbgjOyY_--fQWyCZTzWmM7-Nu1KwIgUQz2UmftX5Okt1HxYTBtibOie7Pa1Rgnx8O9Zbx1disN6aA"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - vFJfpGZr7xA-nbV6mc9gyA Date: - Thu, 10 Oct 2019 03:08:27 GMT Content-Length: - '236' body: encoding: UTF-8 string: |- { "type": "http-01", "url": "/chalZ/I43-dMv8_NJheN5GIQLmbJsL5tzeUG0J4pOx1SHUbmQ", "token": "hogtYco5d5T9p14e1cd_4dzhKuKae3iHPsKLHFUeQCY", "status": "invalid", "validated": "2019-10-10T03:08:27Z", "error": { "type": "urn:ietf:params:acme:error:unauthorized", "detail": "The key authorization file from the server did not match this challenge \"hogtYco5d5T9p14e1cd_4dzhKuKae3iHPsKLHFUeQCY.I43-dMv8_NJheN5GIQLmbJsL5tzeUG0J4pOx1SHUbmQ\" != \"hogtYco5d5T9p14e1cd_4dzhKuKae3iHPsKLHFUeQCY.I43-dMv8_NJheN5GIQLmbJsL5tzeUG0J4pOx1SHUbmQ-oops\"", "status": 403 } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:27 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/challenge_verify_success.yml000066400000000000000000000312501411343312700244140ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:26 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:26 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - vr74gN3U9hxWIeFoa4JCag Date: - Thu, 10 Oct 2019 03:08:26 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:26 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoidnI3NGdOM1U5aHhXSWVGb2E0SkNhZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImUiOiJBUUFCIiwia3R5IjoiUlNBIiwibiI6IngycmpPVTF2bWRUdVpZSGxPSDRneDl2V0tFMlhRM3dCZTQ5dkZGeW90NnFMT2VXeFZZZWFheFBCYXJ2VTBiWEM3LTdvYi03Und1ZndyTXZpRmlQTlVZMnFSUlVZTDctMHJzLTdyV29tYTV3VTFKSTluNFNFN0Nqa1RJYng5OGphc09GbEtHaHRleGJ0M2s4T3NEWllaNVVRVUNCYVBfc3R3ZTYxWjJ5OHFaajh5T3NfSFhKZndoVGM4MkpGVHRSQlZIajdDczhST0RweVQtSHdsaWVIRG5scGpoVU1OMUFBMVFsM3FhWlFsbVNZMUl6aFFLaXVyR3Y4dW5YTDFiMEpCQkhHWDRRWWtadnRweEcxblViZVdxYlMyYXNrUDV3RlZqc08xcWdJRDdFYlFUSTYwdGR0MFQ3N2hoTnZTbDRYMnJYSklMcVlrWFJCTkMtVUJ0am40USJ9fQ","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"iPs34vcKxtNu7h8W_dk_hT2X4q2IsSfLIsHOfBGGO04oOy7mxp2knA74Ui1FDihU-ap3COJK7R_d0tQ2MrtFXbrU9hPJcJD_Rf2crvenDw30_wc7_vLwGXWf80KaVs1ta1963rkemSkwbkZihERR-ifHCHi3G855bE8-LbeOrQMdB0VJrTqgOizAfbT1zSmpaHDpyje4w2EkQnSdagLS1SFke4A25qHUefcb_Cyp8kj3c5e_6AHtzsh_kA7u6ssbXURFR1mOMpiJXidf6ZTnJq2JBXiv5_eBF3K8eiJDQHi0MkNw1Sb20I1IY0L8YVxgt-PUTA-7z2cqT1hVQnyn_g"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/79" Replay-Nonce: - lruQ-MUOIKaYvqjeCHIgnw Date: - Thu, 10 Oct 2019 03:08:26 GMT Content-Length: - '550' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/79", "key": { "kty": "RSA", "n": "x2rjOU1vmdTuZYHlOH4gx9vWKE2XQ3wBe49vFFyot6qLOeWxVYeaaxPBarvU0bXC7-7ob-7RwufwrMviFiPNUY2qRRUYL7-0rs-7rWoma5wU1JI9n4SE7CjkTIbx98jasOFlKGhtexbt3k8OsDZYZ5UQUCBaP_stwe61Z2y8qZj8yOs_HXJfwhTc82JFTtRBVHj7Cs8RODpyT-HwlieHDnlpjhUMN1AA1Ql3qaZQlmSY1IzhQKiurGv8unXL1b0JBBHGX4QYkZvtpxG1nUbeWqbS2askP5wFVjsO1qgID7EbQTI60tdt0T77hhNvSl4X2rXJILqYkXRBNC-UBtjn4Q", "e": "AQAB" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:26 GMT - request: method: post uri: "/order-plz" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoibHJ1US1NVU9JS2FZdnFqZUNISWdudyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9vcmRlci1wbHoiLCJraWQiOiJodHRwczovLzE5Mi4xNjguNTYuOTM6MTQwMDAvbXktYWNjb3VudC83OSJ9","payload":"eyJpZGVudGlmaWVycyI6W3sidHlwZSI6ImRucyIsInZhbHVlIjoiZXhhbXBsZS5jb20ifV19","signature":"JvCBvDOuAfrtJIHVOe72Bsmh5el_qOC5RxAkUliqcJnz09lkKtpz05AgkMFld48M_2sZc_l0jWAMqUkHsG1m9w5X9xOnpb67Q_ZWBArMKPLSdT42nFzbgnsnRqM3TSpnqXij3d645Rp0987iBzB44fqTwxrtnClNaljHeejSUrljrtbKHdoONR5pb79ys4kQDLdrieN5-rTThej57mEEqBbSs1ovzAHdGXydCd79uC5Lk75eWf-0VgKC4vl9nLrPoTL0RbZvFHlA_nuFcgqqAv-S4VmJevw8XzoSubzy4Ob0ySRavk4Ohoqf417BU2iAJL8-KakDQUoJorRejJtSaw"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-order/5cldLcHsmbSOxQuMVLeuf7IICflw-a3Hln2GbTQ_7g4" Replay-Nonce: - 5weJawTnE1D14eFiXKtNCA Date: - Thu, 10 Oct 2019 03:08:26 GMT Content-Length: - '382' body: encoding: UTF-8 string: |- { "status": "pending", "expires": "2019-10-11T03:08:26Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/5cldLcHsmbSOxQuMVLeuf7IICflw-a3Hln2GbTQ_7g4", "authorizations": [ "/authZ/1hQwwIE2jLkMpZHjmvCpSuP3acWOjKgKSUaAuXdrRHc" ] } http_version: recorded_at: Thu, 10 Oct 2019 03:08:26 GMT - request: method: post uri: "/authZ/1hQwwIE2jLkMpZHjmvCpSuP3acWOjKgKSUaAuXdrRHc" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiNXdlSmF3VG5FMUQxNGVGaVhLdE5DQSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9hdXRoWi8xaFF3d0lFMmpMa01wWkhqbXZDcFN1UDNhY1dPaktnS1NVYUF1WGRyUkhjIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNzkifQ","payload":"","signature":"TxesoXbyAbG5VmWwyWUvF2MqzuaKTR5jkDu08NqeLqjszy2HLU2X4MVemdooarKbRgyf9hi36AFuKsMN9UffGoyA5gMOvMDH1FJSX1PsdxntKYdWC_Bjwoelk4PLTX4EXxBylprv1CzCUip7iXGnolGq8CphaZOqNMZzy9tnbmvRmk7cZZSTOnnxR0UaG9Ju-fCi2US77KbmyO5zPVBEe4CqhpvCg7hApvCh42oXlrM7k9BCAm76nxCk03UtGn6SZXvpZuNodfI-SCU-1hiEHCau36-dZO6u5dNRdX0RVVZXY2cYDL1hrwwzPcxVBcUClTVZD1n3RVgeAHs8n0VENA"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - CfqngSs7dbFkW4zlDieGlQ Date: - Thu, 10 Oct 2019 03:08:26 GMT Content-Length: - '874' body: encoding: UTF-8 string: |- { "status": "pending", "identifier": { "type": "dns", "value": "example.com" }, "challenges": [ { "type": "tls-alpn-01", "url": "/chalZ/U2JDUEN9M9Z7ZYRV_b82JLt5GUVNrExj89aUE5KMiiY", "token": "LPfcXAuF8Zhp9G6PhqTX4UoM-5_GgY5JHQl2MG3X0AQ", "status": "pending" }, { "type": "dns-01", "url": "/chalZ/do6p9wzOrR58pHSorDrb4EVruBd80bgOIzIZMAynzv8", "token": "780JF7-xS6jq8Y_hcMFdAYDMMXNa-uD5qD2jDTl6kAU", "status": "pending" }, { "type": "http-01", "url": "/chalZ/lfwzHFSUbAC1j4EJwTBzIWfsU_5hVrbKzqJNuBERh9s", "token": "5DkspXlC6W3pg3XQED8m6Iq1q2pz1zu-hYkSMbUQiv8", "status": "pending" } ], "expires": "2019-10-10T04:08:26Z" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:26 GMT - request: method: post uri: "/chalZ/lfwzHFSUbAC1j4EJwTBzIWfsU_5hVrbKzqJNuBERh9s" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiQ2ZxbmdTczdkYkZrVzR6bERpZUdsUSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9jaGFsWi9sZnd6SEZTVWJBQzFqNEVKd1RCeklXZnNVXzVoVnJiS3pxSk51QkVSaDlzIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNzkifQ","payload":"e30","signature":"tg3E0hngVNBj5ndMSIG5M5iD-qhrN5owsXdnrWqowxfONAWcyWe0rYo3DlqS9mLGj80dmdsZjfCB81ICuNuMK6uCl5W4EkLqOIwJyPrIo39rfjaaBEnjZTC1t-fI0B0mTbyu6xcQyYL0axctJksdPKMNeS1QOPNF6trekzGexR1oTYc8hOyYjpDeq8Bo9j7i4ziMLhfHzFAmtBCOLnaXOeD29XLDWobVYJC_vCu_sISqwjA-GI6Ko2xCkDafydQY9yg7wjAKCjwDlx48_lCUZqqDaBhgATcT_lVtN13HkUqu8Zvyrzfub9y7YO5XxlEvPg1gaFjRRFcSonOVcoqiVw"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - </authZ/1hQwwIE2jLkMpZHjmvCpSuP3acWOjKgKSUaAuXdrRHc>;rel="up" - <>;rel="index" Replay-Nonce: - 2Gcx1tWks7ChQbLNeIOZkA Date: - Thu, 10 Oct 2019 03:08:26 GMT Content-Length: - '198' body: encoding: UTF-8 string: |- { "type": "http-01", "url": "/chalZ/lfwzHFSUbAC1j4EJwTBzIWfsU_5hVrbKzqJNuBERh9s", "token": "5DkspXlC6W3pg3XQED8m6Iq1q2pz1zu-hYkSMbUQiv8", "status": "pending" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:26 GMT - request: method: post uri: "/chalZ/lfwzHFSUbAC1j4EJwTBzIWfsU_5hVrbKzqJNuBERh9s" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiMkdjeDF0V2tzN0NoUWJMTmVJT1prQSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9jaGFsWi9sZnd6SEZTVWJBQzFqNEVKd1RCeklXZnNVXzVoVnJiS3pxSk51QkVSaDlzIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNzkifQ","payload":"","signature":"gbRgIyHUhuSaCDwAnDsjkETIpo3SDfFeQN8MThJoD5K5cwiodttaYK-WIMtKE1-ggPCLQONWeCV9vMWFGPerD9VsHmQH9A3IcrTPyoionArHtZ5ppCegEwEbpxHDeB9WqcbXKuYCMwnWhfRO8Hh6-xB82zS8S9S_fWDjsdbC00hk5AzOcGU_9up3AB5Ht_SLchKkaqBaTljBY9RnIJdOuBiIylIP3AYibuTsuRx8jGjlB0_NefrU9kKJgmhmCHNigbqpmkI0lFy1alRK3T5k62cREctZTxk84HiRz8k8BC-Us-sLnDSy5U3HlpBFPi4au_P7ZG2Bsj7yymJiUGx5-w"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - sWd6dAaWSg_NsHlhwAA0xg Date: - Thu, 10 Oct 2019 03:08:26 GMT Content-Length: - '236' body: encoding: UTF-8 string: |- { "type": "http-01", "url": "/chalZ/lfwzHFSUbAC1j4EJwTBzIWfsU_5hVrbKzqJNuBERh9s", "token": "5DkspXlC6W3pg3XQED8m6Iq1q2pz1zu-hYkSMbUQiv8", "status": "valid", "validated": "2019-10-10T03:08:26Z" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:26 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/client_meta.yml000066400000000000000000000073761411343312700216560ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:14 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:14 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - BjoPGx1wSsVSQ-fM-SVjNw Date: - Thu, 10 Oct 2019 03:08:14 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:14 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzM4NCIsIm5vbmNlIjoiQmpvUEd4MXdTc1ZTUS1mTS1TVmpOdyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImNydiI6IlAtMzg0Iiwia3R5IjoiRUMiLCJ4IjoiQXlXcUttek9sSGFxR2pYZ2hzcWNNQ1Y3U0ZqYU5DeXpacWhxcFgyRlFTMEg2MXBGZlltRGtuZndVTDF3b1JURCIsInkiOiJ2VnAwblhyTjZMdGkteVFma3hodGJ6WmhrTThtbWM1LUhlVGY4TE9mU2c0SV9QbEtTODF1cWdrdW9WdzY4dHJWIn19","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"aLQuJR9XxuEQYCi3aQtMRTRzXAPBz4pG_zSE8tb1PE9d4wUbmUXB6aK7aH1JWMoDfARuPr3Z7DvUi6BDHtnB4eBYu_IT_etc73318an3WNUICPzkBuGVVZm3oo9Ru2v3"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/55" Replay-Nonce: - ONNsf6redbHHNON11yBGdA Date: - Thu, 10 Oct 2019 03:08:14 GMT Content-Length: - '353' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/55", "key": { "kty": "EC", "crv": "P-384", "x": "AyWqKmzOlHaqGjXghsqcMCV7SFjaNCyzZqhqpX2FQS0H61pFfYmDknfwUL1woRTD", "y": "vVp0nXrN6Lti-yQfkxhtbzZhkM8mmc5-HeTf8LOfSg4I_PlKS81uqgkuoVw68trV" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:14 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/deactivate_authorization.yml000066400000000000000000000255001411343312700244500ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:20 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:20 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - cRmNI1v5vX6aG8VmpCD_3Q Date: - Thu, 10 Oct 2019 03:08:20 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:20 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiY1JtTkkxdjV2WDZhRzhWbXBDRF8zUSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImUiOiJBUUFCIiwia3R5IjoiUlNBIiwibiI6InFuZFBUaHFEb19VMUhDZ1lMRGk5eVpMT0EyTkZBUmdOeVFhaUw0LUZnOHJzQnlCeFJrMkRoN0ZtN2RMQThpemg3THpXNEoxN3daNkpoSTRtakhCMjZ1UDZ1WG9Ic1E3clZRQlhZbWNKQVp3T3g5ZkJiaGVMQ2Rza1ZFRG1jazZhdU5ZRzRTMjczMTBfN2wwdzdJODhiVjVfdmxyVWVLX0hXQWJ1a1BDQXpYZV9rX2wtaWsyOWt6NnZwMnNKeWwyRVRVVkYwUjhaTThFazVuWG9HcXIybzMweTdZbzhMMEItNTdNckNvQU1WcUZ2UWNwZ25Gc25GQW91enFrLTRIbWNjVC1NODNIU3JOcU9WUjBhbTY2WkMyTm9fdEFIU1JaQnAxc0ZUM3Q4UXkxcU5JVVNkQm5neHpwNEhoY0pyQkdxRTdBOGRJWHJPc2xNT2dIaGV5MFdsUSJ9fQ","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"ZCdRBNcY7VkDkpH7u-qTwtrUzqooEx2304_sFpSAF5wI3TVRluyPrg4t9b9uM2FPlZ-UWxMFfTZBETAos0LLFUeKX-m2rmk_ibBrL7vyXwUotcJ_aJnrFKUhX5EsYgFN9mrV_WeGqUIvg8H37Qhy55yZrnbwxDtueFVoMMAXQNfjCJs-Ts785IrJzsmNZzGTpNwff_JDbmHjnIQ6cWLPjVIy8a5qLiV9BljcvevVVqqQohbYnZkAuNItELXm9Lbre9edKb5VgElraCY5OwWXJCCenD33DqgYp_iErUs4Rm0CdHAt4WSUuENjKWRInlRb5PJ9kCjEuV7N0UjwgWcyyA"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/70" Replay-Nonce: - "-J9XqADPv0rbZYHGyKkuuA" Date: - Thu, 10 Oct 2019 03:08:20 GMT Content-Length: - '550' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/70", "key": { "kty": "RSA", "n": "qndPThqDo_U1HCgYLDi9yZLOA2NFARgNyQaiL4-Fg8rsByBxRk2Dh7Fm7dLA8izh7LzW4J17wZ6JhI4mjHB26uP6uXoHsQ7rVQBXYmcJAZwOx9fBbheLCdskVEDmck6auNYG4S27310_7l0w7I88bV5_vlrUeK_HWAbukPCAzXe_k_l-ik29kz6vp2sJyl2ETUVF0R8ZM8Ek5nXoGqr2o30y7Yo8L0B-57MrCoAMVqFvQcpgnFsnFAouzqk-4HmccT-M83HSrNqOVR0am66ZC2No_tAHSRZBp1sFT3t8Qy1qNIUSdBngxzp4HhcJrBGqE7A8dIXrOslMOgHhey0WlQ", "e": "AQAB" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:20 GMT - request: method: post uri: "/order-plz" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiLUo5WHFBRFB2MHJiWllIR3lLa3V1QSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9vcmRlci1wbHoiLCJraWQiOiJodHRwczovLzE5Mi4xNjguNTYuOTM6MTQwMDAvbXktYWNjb3VudC83MCJ9","payload":"eyJpZGVudGlmaWVycyI6W3sidHlwZSI6ImRucyIsInZhbHVlIjoiZXhhbXBsZS5jb20ifV19","signature":"eNbMHcWpNBzEfGKKRJwlj8KLybUo0T3Mz75pQ5UDrXwI6-4LzMGedhZ1o0CEW0-hHpV9hTb330EYudjY7AOioOTyO57FVxeFeSytiI1Rh21Fmb82O33fNuoDEJT6mHmxFs845LPYFKS4yee2SEO5gKp3QARdY4kVY2LXupExsxwfo2XaPF_JqcnZBv28YowW1X8E7voLioPJ7EYHSaACQGOYmbtJQGexl7iFcVx0aW7XVTKL-L8QNSPGYQzIiF07O6Fv5KmVtODArd1DVudysKI14eRQdB51CU1FK8mj8Vsclp_xe_zvwWM24ccfuINLcGngh8RW6zfxNvc_-HocsA"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-order/sBY8PzqdDiZJU11-IHum8hW4LZkzFCS9OAxsMzik9sI" Replay-Nonce: - Sld6Mh4Zs7liQN5IOgYanQ Date: - Thu, 10 Oct 2019 03:08:20 GMT Content-Length: - '382' body: encoding: UTF-8 string: |- { "status": "pending", "expires": "2019-10-11T03:08:20Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/sBY8PzqdDiZJU11-IHum8hW4LZkzFCS9OAxsMzik9sI", "authorizations": [ "/authZ/cOwur0slMjKUIwN9Q1OJEou8XpmgzBrfVSIhr1afnzE" ] } http_version: recorded_at: Thu, 10 Oct 2019 03:08:20 GMT - request: method: post uri: "/authZ/cOwur0slMjKUIwN9Q1OJEou8XpmgzBrfVSIhr1afnzE" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiU2xkNk1oNFpzN2xpUU41SU9nWWFuUSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9hdXRoWi9jT3d1cjBzbE1qS1VJd045UTFPSkVvdThYcG1nekJyZlZTSWhyMWFmbnpFIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNzAifQ","payload":"","signature":"Z7CUzggysw9d1xyAuV6vI5cq0dd8cvt6dy_b_rJi1UvHmv_4ZkFizbRsPzZCDHJZKPAHWWdckbw15Vb0cwZDrHA3CvkR0RwyGROPX8pzYk1YqzfrJtmuNH6ZvBfPyoi4sBle76tIUwmpfh__7NPMEdOVoFAtrM-xIQyeZBdRy-PpepDXlc6E3V_wnqcUJxBwSIizHkt_nI58kSSGzTRPg43Cy0URQ2bDfo_cEllft776kWRnT6vGa1qDa2Du9aIkbznsLhzOr4YLkbLdX4K0kZo-oUX5L2nl30sX4GI6Vs303smuPZNsWV-MN58MxbdiaMkfkPzrvS_G2SZNaMYSkw"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - WePV5QZir3bNKcSfHn1MbQ Date: - Thu, 10 Oct 2019 03:08:20 GMT Content-Length: - '874' body: encoding: UTF-8 string: |- { "status": "pending", "identifier": { "type": "dns", "value": "example.com" }, "challenges": [ { "type": "dns-01", "url": "/chalZ/kBDPyAcaDhOprn2pXHs4O-1kZGb2RTVFx0ch4Pl2K-o", "token": "CRW_qq8ZDwcgcCGirL95ANaUbJr7zfYJO-TyQacVTOA", "status": "pending" }, { "type": "tls-alpn-01", "url": "/chalZ/802ecqh6V3fOPvLPY1UCdW5HW_DbJyisneBh7KioOn8", "token": "jGZxTw4ilMOlkQqPjHSGNwyXP_neBWxJ_2G8IQJwd2M", "status": "pending" }, { "type": "http-01", "url": "/chalZ/-lecYL8Be-qmxlu72dF7XqcOWzT9zWaj0dPFq9RKkCM", "token": "3XavahT6eugk72I0jr0-5C3GKvlPuf-_x85WnxBP7bI", "status": "pending" } ], "expires": "2019-10-10T04:08:20Z" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:20 GMT - request: method: post uri: "/authZ/cOwur0slMjKUIwN9Q1OJEou8XpmgzBrfVSIhr1afnzE" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiV2VQVjVRWmlyM2JOS2NTZkhuMU1iUSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9hdXRoWi9jT3d1cjBzbE1qS1VJd045UTFPSkVvdThYcG1nekJyZlZTSWhyMWFmbnpFIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNzAifQ","payload":"eyJzdGF0dXMiOiJkZWFjdGl2YXRlZCJ9","signature":"n7GO3YHjQghy8VdtPlQ_OBMloxAEMuJeOl0GkkEuqr4KDW_qUIbrQKTZ0V8yP_roatN27huQ9uIN3IxB4NQFSm_8KDaWDit83MswtS7mVm3GsuRq3OV6RyKhW0T3bfioHT5rPLx-j_yxNsuFwp_y45Ow8JEmmLGm0uAJLRiE1w528_DWE4ztBeJxF6oru6rwX_wSBBP7VjBHWGNO_R3cxe82YA5XjgK-47nXHEkuSXtZzoVoSCGJunEmo7Nsdiqz_owYw0xypXRDU397pUnUNV8IFZ-PmreMRIQBi9FwE8QOY7oQm-UvW-SjyrEla9sAqtD1k1l_9rZyC-owmQDLfQ"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - jo4G1H8IRTR3cTZz0cbwAQ Date: - Thu, 10 Oct 2019 03:08:20 GMT Content-Length: - '164' body: encoding: UTF-8 string: |- { "status": "deactivated", "identifier": { "type": "dns", "value": "example.com" }, "challenges": [], "expires": "2019-10-10T04:08:20Z" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:20 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/directory_endpoint_for.yml000066400000000000000000000022301411343312700241240ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:14 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:14 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/directory_meta.yml000066400000000000000000000022301411343312700223640ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:14 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:14 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/directory_ratelimit.yml000066400000000000000000000017141411343312700234360ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 403 message: Forbidden headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:14 GMT Content-Length: - '212' body: encoding: UTF-8 string: |- {"type": "urn:ietf:params:acme:error:rateLimited", "detail": "Your IP, 156.38.202.48, has been blocked due to extremely high traffic. Once corrected, request a review by emailing unblock-request@letsencrypt.org"} http_version: recorded_at: Thu, 10 Oct 2019 03:08:14 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/fail_fetch_order.yml000066400000000000000000000177061411343312700226470ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:21 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:21 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - iiMrZxEMH1Vb92DQIn7ftw Date: - Thu, 10 Oct 2019 03:08:21 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:21 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiaWlNclp4RU1IMVZiOTJEUUluN2Z0dyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImUiOiJBUUFCIiwia3R5IjoiUlNBIiwibiI6InZxNGhFWWM4YnpmSnJZdzFlNXJVS0VIT3VNcGMwY0xoenhRSjhjOXM3V2k1QnJ2b0oyckxYNURGdnRISzdCSjhKeVpIV0NQMFcyanVYNlFVOUJ6WEJJNUZCNFg5eHE0cllwaEhvbDRYcVF3dmljejFEUHVlT0RRU2hNY3hSajh0bS1qdEJoSE1NSUlxQW5tUkluN0I2UkN0QU1UYWNkeXdEU1dzbllONm10TTcwVEhWMkNBeExlS202a0V3a2N6S0M0ZGV1ZFd1MzUwMTFacVNUbHNhN0dFZmU4RDdDSHZIRlFKLWREVGE1eHdGelFVekx6TlJjMDI2X1BNandXczJyc3ZadTFpaEsySmdfVUN6SENHcUY2eHd5WlR5MU1PX0hLTERRMVNLOG54aVJWNkQwUk1mX3EtMUMwN0FiMTJPdmlfdmM4MVBiMVpkV1NkV0NrOXJndyJ9fQ","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"BX8St2zGJ1f7zlhDyuzBBXMAWzHhwYcsGjyWrNIrQIy3s-fEpoepGtyq7UmSEUfxRVf-tsT_aI6pJJYNMkC12M9TEwcbYkW9Jg46kGlapjGe5NJDokYdEtcvGtk2kpDEWlejiu_QibBDGFB4uEO5DnVx8c9PTXnhlqkjqnZO74lbsn3fYDgU1J41st40AMuYp2oV-4xdgiXg7bWqFsiuMtkB9jFVN1V43kutpRRLNvinpBgN-sR6IvgGptPLHT3B9s-Eu6h8pj-k3t91ZEam8NHWMlLzuWu8y_kbWhDeGSvrVvVmUJyI3WWprRyvLfvOg4vKPK-8yiXWC9HwSmlZCA"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/72" Replay-Nonce: - wea9niuVeVkDp9KU7uc0LA Date: - Thu, 10 Oct 2019 03:08:21 GMT Content-Length: - '550' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/72", "key": { "kty": "RSA", "n": "vq4hEYc8bzfJrYw1e5rUKEHOuMpc0cLhzxQJ8c9s7Wi5BrvoJ2rLX5DFvtHK7BJ8JyZHWCP0W2juX6QU9BzXBI5FB4X9xq4rYphHol4XqQwvicz1DPueODQShMcxRj8tm-jtBhHMMIIqAnmRIn7B6RCtAMTacdywDSWsnYN6mtM70THV2CAxLeKm6kEwkczKC4deudWu35011ZqSTlsa7GEfe8D7CHvHFQJ-dDTa5xwFzQUzLzNRc026_PMjwWs2rsvZu1ihK2Jg_UCzHCGqF6xwyZTy1MO_HKLDQ1SK8nxiRV6D0RMf_q-1C07Ab12Ovi_vc81Pb1ZdWSdWCk9rgw", "e": "AQAB" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:21 GMT - request: method: post uri: "/order-plz" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoid2VhOW5pdVZlVmtEcDlLVTd1YzBMQSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9vcmRlci1wbHoiLCJraWQiOiJodHRwczovLzE5Mi4xNjguNTYuOTM6MTQwMDAvbXktYWNjb3VudC83MiJ9","payload":"eyJpZGVudGlmaWVycyI6W3sidHlwZSI6ImRucyIsInZhbHVlIjoiZXhhbXBsZS5jb20ifV19","signature":"MBhk5DBtDLhQqQTq6JRqA4qafxm1IjDXAHEAQGyR6tzXbH6T2T0xNn8Kng3N-_dS3w_CCGdtBZVY8LK2EbLZi6npnJ_h_VGbA6vcd8ncwsJSyx6_AoZnqEgO56I_dv3aX0oVREkw3aerG8j0K1_mJSXh1mLhMZby4CdtXe0d0CU_EJdOpiOfZ4K6WRyYZJT1g1M99xm0DAV-oDWp9xVPPV7ZJk64qqWeOOyRya6wFtTq1Hc36eXR2eCv9KXtu9JrVSdjjLsaEjYq-ijuQSEKPxYH3l-bS7A8kmapTg-9xYBJ6h3ITb7dNdE5rgEdUJ_cbLtHD_j_MAQtlt1Yr98ePg"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-order/75D9-Axgm0UbKkiEyBsFLILuyj6YZ64qevtW7G23FYM" Replay-Nonce: - 5z7Fgov4rxzd6bRtvY-eoA Date: - Thu, 10 Oct 2019 03:08:21 GMT Content-Length: - '382' body: encoding: UTF-8 string: |- { "status": "pending", "expires": "2019-10-11T03:08:21Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/75D9-Axgm0UbKkiEyBsFLILuyj6YZ64qevtW7G23FYM", "authorizations": [ "/authZ/UE9i-tkywhNUx-fwdKH4iJpZ5PqIQ3YsNc3HjHfe_bA" ] } http_version: recorded_at: Thu, 10 Oct 2019 03:08:21 GMT - request: method: post uri: "/my-order/75D9-Axgm0UbKkiEyBsFLILuyj6YZ64qevtW7G23FYMerr" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiNXo3RmdvdjRyeHpkNmJSdHZZLWVvQSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9teS1vcmRlci83NUQ5LUF4Z20wVWJLa2lFeUJzRkxJTHV5ajZZWjY0cWV2dFc3RzIzRllNZXJyIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNzIifQ","payload":"","signature":"ZpN4SvsXhFU6Usb0x3Xe1Faj9i-7a5BHc0pfMcqoSx_7QCHmXPlxJCJPLPFY5HxKlNAsBAscluxxEjPfkhCKPfhGBagtFge-M0P7ZxCAPDuxAPOhqDW4eSWa7Uk4Gpqi65siZTb4bVA_0AwrIWXzgxH3vMFFx-Hfvc2fI-CGQWwBO3K5GaSG7eR_Y5uUTxJ_9mROHbL8LWoTzegW5Gno3WAAynQtWIXRip1AiOXpzwA4VKjtjx3LE3BKDN46Vsj49Xd0ds2EEIgf7LSD4MumSb-qd7T7f_FyOSdul08Nl1e0zdD2hbqRD18V8V_llUYnnO-CdHtHLz3wj9IGouR7Gg"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 404 message: Not Found headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - A1RKyffeQ5VEkjtzYu6z8Q Date: - Thu, 10 Oct 2019 03:08:21 GMT Content-Length: - '0' body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:21 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/fetch_authorization.yml000066400000000000000000000220451411343312700234310ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:21 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:21 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - AzFF8dB05WK37wPpO6vu-Q Date: - Thu, 10 Oct 2019 03:08:21 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:21 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiQXpGRjhkQjA1V0szN3dQcE82dnUtUSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImUiOiJBUUFCIiwia3R5IjoiUlNBIiwibiI6IndtZWRiSDdaeFVIeHVSMWJwbVNpRlo2MFZ6dUZwQ0VHVnhxUE9XZTYzb3BuX01UNXQybDZsUXJSQlRoZzhMWElWaU13bU1NN1J4MWJJSFVKMWVZbFFjbWRVRlFDMHFjcGJxcGVIaC1oRmcyaTQ3MjhSQkRleUVLRk96bV8tMU9KWHk1Z29CWnJDSThWd2w2eGcxeGFLSzdidF9JS3JzbUtkR0NQV1lWLU5OemFrREg0MVVDaTM2a2dSV1huN2FsUEwzcXJtREE2MkZCeGFJeHJ0eHk3clp5TWpkeU1kcVdxZHRac2NTanA5LVlNLVZ3dnN5M2ROVE1ETGJXLUFVQXo4b1MyXzEyM3NkMHNsWFZhZ2Y1Y1VQZWU5V0E5Ull6Y25tM2t2OUVLQngtOHFOSU1wQkpiV0R2VVA2Z2NVQjVYYS1WNVdDdGpIUF90dERyb08tOFo5dyJ9fQ","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"HogIgm9HdfbGtmFvOaoVgt9fgdYrC04cciv_oijZcQ-0rp7tGNDsjR3DWMwHAcLpz4xy3VHJ_NsMgFEBc---5pZwMk7qaliA3pRc7mUJ5RSDuWqTn4n6oL5qiLtCJBmkyCrHMpsqZsbHT_CzyUPpuTdsy-u-VGe5aecWYU2HHWbfCye4N5HR97TSZ3xpgdPmZAu4i8LHfj96SNBqcJRXcpUKqQrKmK-1-17RPfVtDwWp1WecT38z3TYKYkw7ltFDsynnXNiBCSQBfR19Wi0kCUejKoSWs1M7svc2vlJPQLT6nYM9nZ9_e95NbPlKiRmXx7fltGNKBX4oEkgkSF6Sig"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/73" Replay-Nonce: - OLcStX3rB3Y95alaE_x0bw Date: - Thu, 10 Oct 2019 03:08:21 GMT Content-Length: - '550' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/73", "key": { "kty": "RSA", "n": "wmedbH7ZxUHxuR1bpmSiFZ60VzuFpCEGVxqPOWe63opn_MT5t2l6lQrRBThg8LXIViMwmMM7Rx1bIHUJ1eYlQcmdUFQC0qcpbqpeHh-hFg2i4728RBDeyEKFOzm_-1OJXy5goBZrCI8Vwl6xg1xaKK7bt_IKrsmKdGCPWYV-NNzakDH41UCi36kgRWXn7alPL3qrmDA62FBxaIxrtxy7rZyMjdyMdqWqdtZscSjp9-YM-Vwvsy3dNTMDLbW-AUAz8oS2_123sd0slXVagf5cUPee9WA9RYzcnm3kv9EKBx-8qNIMpBJbWDvUP6gcUB5Xa-V5WCtjHP_ttDroO-8Z9w", "e": "AQAB" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:21 GMT - request: method: post uri: "/order-plz" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiT0xjU3RYM3JCM1k5NWFsYUVfeDBidyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9vcmRlci1wbHoiLCJraWQiOiJodHRwczovLzE5Mi4xNjguNTYuOTM6MTQwMDAvbXktYWNjb3VudC83MyJ9","payload":"eyJpZGVudGlmaWVycyI6W3sidHlwZSI6ImRucyIsInZhbHVlIjoiZXhhbXBsZS5jb20ifV19","signature":"eAMZ-PbbM-Tgko-o_Xu6J3uBPafDtmvvCfY_vD_fGasK6C2bYnHd_zyvea8XoPWDgHmqPGPSfaTSD2UzMuIoXSIA4RrPvPWeHitZm5tdYvV8OEFAeaFQOg4nhFRxS9gbsy2nWQdv4vLFr-9Tdkc81Qc5ZztHxk0UC6s78QqGoxOGNwtfT96AxxFFwnQWC9ZC-wFWiZaIu4dAm6mCEkpLHAE2KqbVQ3xpeucHI-UEtbSGv3md9nddIYYSK60Ze573RjzyeO3bx5TKIGO4xAVvTDGx5_Bqd0XOjAw5GxKe5bn82KTAZMzL182BuKRmVPwAot1CS3G28SzlNW8HibGumg"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-order/XJATAvSzXBd9FyIDYfjV1kmtZ27-Sk0-A4j-JesP4c8" Replay-Nonce: - db4rj2JMTVQUcIImP9De0A Date: - Thu, 10 Oct 2019 03:08:21 GMT Content-Length: - '382' body: encoding: UTF-8 string: |- { "status": "pending", "expires": "2019-10-11T03:08:21Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/XJATAvSzXBd9FyIDYfjV1kmtZ27-Sk0-A4j-JesP4c8", "authorizations": [ "/authZ/ccN4L_tSjJAEU_xaK3VYeAxiubT9edsO_vIc8FGrtqk" ] } http_version: recorded_at: Thu, 10 Oct 2019 03:08:21 GMT - request: method: post uri: "/authZ/ccN4L_tSjJAEU_xaK3VYeAxiubT9edsO_vIc8FGrtqk" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiZGI0cmoySk1UVlFVY0lJbVA5RGUwQSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9hdXRoWi9jY040TF90U2pKQUVVX3hhSzNWWWVBeGl1YlQ5ZWRzT192SWM4RkdydHFrIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNzMifQ","payload":"","signature":"er0DzKpQpKfvCfMQLxMtvoIdQ8G6bOO6I4Wvjb1LkceKooOO4CBxafbMNglU__PDm3r6xTBCxqx4hSJiJV-BDOUgMaaV3x_e2zfKwDQpZ0bXrsSB6iunlk-2tjpGPsmelCGZ_dy6JnkzBq4QQm5K0_YBgDQn8HzZY69YUbBQxlQVhvLmhsGlLORy5PaX5aoe6m-eFRQ0PDVZkSL8UGu2o21mzM5_pZaLfkB2VYHcTtAhya61IKXun22nEd2cAqc5ieZSTfES2IFrIOh8fOXqSGPWtXJ-PJZtZoVl5ER3JWqSCQALpQoSpEuDXrQXII98s8EbXdvDArWtzxYkpdVfVw"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - FuVuV-7AR4H-J2Dmuw9IPQ Date: - Thu, 10 Oct 2019 03:08:21 GMT Content-Length: - '874' body: encoding: UTF-8 string: |- { "status": "pending", "identifier": { "type": "dns", "value": "example.com" }, "challenges": [ { "type": "dns-01", "url": "/chalZ/q4PQn8uOwxsTSRu6kWv2rklML08krsP2rwhMFHHt7-0", "token": "pqksPrPGdMSGsafaPtTAHHpks2oBewqp0ILvn5mrJ7M", "status": "pending" }, { "type": "tls-alpn-01", "url": "/chalZ/ediPq_1LxefBuVC0Iy5bcwc5IOwNd-6fdCMfZv0-jro", "token": "CWAlot4Fe42eBReuv5FIpE06dhI1_cKKmpatxrtQuJw", "status": "pending" }, { "type": "http-01", "url": "/chalZ/bCnAFkVDoZLkVixsjloOpnE4rOQZ06xoJTSeIyhmfUg", "token": "jeqVIQmKSkf-hw-je9ocCAMmqhJFsf5Ng0dVOEBhdo0", "status": "pending" } ], "expires": "2019-10-10T04:08:21Z" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:21 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/fetch_challenge.yml000066400000000000000000000254411411343312700224560ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:19 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:19 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - iTIm-bjQSV_H66suJ7t7-Q Date: - Thu, 10 Oct 2019 03:08:19 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:19 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiaVRJbS1ialFTVl9INjZzdUo3dDctUSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImUiOiJBUUFCIiwia3R5IjoiUlNBIiwibiI6IjZ3a1dITnc5SUEybi1UX1VxLUhILXB3dXcxeGUtQ0FkalNySlZuZmh5b1ZQZmlGS0ItQXRlaVpNb2tjZHRNTVZ6QndEd2QzMVdUMHpLb3VoQTduSFFCbHlwR3hKRnlBZHVCdnUzd1UtTnc4c2VOQU42T2M0bE9mQU5fNS1kWXBHM0FSOV9SNjl2czJ0ZF9HNUZ6aGt2aGhfWWt1QUp3b0hOLVdmWHVuc1lCS25qYWVBUTBWaXBaN2RkZU1IOTdITEtHX05NelNCYW9VQTJRWU9zWUJHTzJyc1JOM3BDQ0U3VVdvQ1M0WlNqYzVEaWhUVm55YWt3d3dsaWgzUy1pTF83aFM5TWdKcUpxckRsRTNtQW1ORGtzc21Odm9EbnA2NjNoM0lkTnVQTmNFbk1fUDN6NW1aZjhHOUJlU09QcGtQSWotS2lIaUlLazV0T0NCUnBxSGd2USJ9fQ","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"AlGYW1ACaFMGblXtMvpiPqDJeY4W2GF1nmBo9u68QHeH38D-QbwRzcWLbeJsRizDYYSPFkGh66Gx3RZLlHABSRhxbirAE56rhC30QIkDgai3Uv9SWVx6vtUvk2f7HPlrMV3S59FPFjlAgf80v2feNqYYPcvNN7P6Twl7Rs6Gfwja3dfYsGrhhklYWLBowY0Us7UvZZphepgR5jVgkMRdmSNPNlX5nTYu6ZwNfVUUHMsF-bgMIVI090Fr2tWKnK4y2T3v1vMA_h79qwP6uUJlDn64osdXLWT3dAD5x-9IPEbJRY3HWuPgPSXHtYDx-mqCAT4gnwDm46MvrHS64hn49w"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/66" Replay-Nonce: - yPHrNfhhuOLyoTY3UcJDAw Date: - Thu, 10 Oct 2019 03:08:19 GMT Content-Length: - '550' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/66", "key": { "kty": "RSA", "n": "6wkWHNw9IA2n-T_Uq-HH-pwuw1xe-CAdjSrJVnfhyoVPfiFKB-AteiZMokcdtMMVzBwDwd31WT0zKouhA7nHQBlypGxJFyAduBvu3wU-Nw8seNAN6Oc4lOfAN_5-dYpG3AR9_R69vs2td_G5Fzhkvhh_YkuAJwoHN-WfXunsYBKnjaeAQ0VipZ7ddeMH97HLKG_NMzSBaoUA2QYOsYBGO2rsRN3pCCE7UWoCS4ZSjc5DihTVnyakwwwlih3S-iL_7hS9MgJqJqrDlE3mAmNDkssmNvoDnp663h3IdNuPNcEnM_P3z5mZf8G9BeSOPpkPIj-KiHiIKk5tOCBRpqHgvQ", "e": "AQAB" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:19 GMT - request: method: post uri: "/order-plz" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoieVBIck5maGh1T0x5b1RZM1VjSkRBdyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9vcmRlci1wbHoiLCJraWQiOiJodHRwczovLzE5Mi4xNjguNTYuOTM6MTQwMDAvbXktYWNjb3VudC82NiJ9","payload":"eyJpZGVudGlmaWVycyI6W3sidHlwZSI6ImRucyIsInZhbHVlIjoiZXhhbXBsZS5jb20ifV19","signature":"ybHZEcaoh5OXBR_dvRsvmqcV5Cq_Bf3R8qZUd0psO56kgPXFX-WDq95-nse6Exvx3Ju8mMVfaLBsFxyYQxeS1KmvAuHk5t7HC8cgcGPj9n74Q37Kell1NOseRd89TNYzf2GAjS6nDPUcfC3pd40QySAFnLJYUYbLwmH1tDwEc9yb506mntI2d1_jlaaq8YmwpjOrBkGaNb6l3asXWuOWzgQMBN9Vj1V87GeMILIdeSQUNoxvF1DyTn8Wz-bmBKM933ajdXuYzIZTrMVAr034Xgy1eGmT01-5wT1x_fXF52K5kV2LpzpRnh0g-aIG7njOKmyA9zuRC1XSgDpo4OWK6w"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-order/yAdhpbQci4VmYiN6ZKoD-_C0zA6UBoIPPjV3B1cG2uw" Replay-Nonce: - XGnNHR1MN9EZMSUQVIinfA Date: - Thu, 10 Oct 2019 03:08:19 GMT Content-Length: - '382' body: encoding: UTF-8 string: |- { "status": "pending", "expires": "2019-10-11T03:08:19Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/yAdhpbQci4VmYiN6ZKoD-_C0zA6UBoIPPjV3B1cG2uw", "authorizations": [ "/authZ/XAeO8U43n9Gv1kxzeezncqpiKvZQRYPkks_zkP6XtQ8" ] } http_version: recorded_at: Thu, 10 Oct 2019 03:08:19 GMT - request: method: post uri: "/authZ/XAeO8U43n9Gv1kxzeezncqpiKvZQRYPkks_zkP6XtQ8" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiWEduTkhSMU1OOUVaTVNVUVZJaW5mQSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9hdXRoWi9YQWVPOFU0M245R3Yxa3h6ZWV6bmNxcGlLdlpRUllQa2tzX3prUDZYdFE4Iiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNjYifQ","payload":"","signature":"nQqrVord4ktdgiO-6YFvCRZG1DUBIgfr1IIGrfZ7UuJfrTlQrNPRrL9gueHHUEBV6n6M1uDzWtIbt0rD_TlCgogtWeAm8UqZd0GgWbdFbIqOfVJqaLp7Vx_YahIGwENF53bHrSYXKN26tlZP4eoOq5lOE_oP1zmSY2b8IhEqPSrcm7RZJ6auemvPLVmkDxG1028dfp-ToJNqEkp2-dWo6S2qPIDlMJ14vf5SDHF4vjRt_jkMFw4PHixChiTPHDGRVXBsZ3ePQ-K7Fwbs-E_QNpkizG1tMaKjpgozNIaC8503bW39TP4xU9kz5NvvERXRInjOOjdqRA6tockhW3MtKA"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - rFP1G_QlqePtLGM6h-PTGg Date: - Thu, 10 Oct 2019 03:08:19 GMT Content-Length: - '874' body: encoding: UTF-8 string: |- { "status": "pending", "identifier": { "type": "dns", "value": "example.com" }, "challenges": [ { "type": "tls-alpn-01", "url": "/chalZ/JV-e1QgHLe1dfj7PgMrTjL6hJ7FUfXL22sQS0KZcZ9c", "token": "CQut8pJi7SlVoQrRLaQx2XPYtL_Lw7Pgtbq2hLseJS0", "status": "pending" }, { "type": "http-01", "url": "/chalZ/Wn6HwWqfyAGoGlA8QXPPGYarC0h9j3nRYUa5tFMIiNw", "token": "G_gAR_pnAeg8kGsmvmlqwN33sFr3fg5NhWIcgL5kAoo", "status": "pending" }, { "type": "dns-01", "url": "/chalZ/QWeZrBCPnj8JDirm3NT40XehHAbdxvli4AMqrSPYZzU", "token": "Ih3dDhv5EvqcTMvj_mgDt1TYBAEjLnqovL77fqqnAYo", "status": "pending" } ], "expires": "2019-10-10T04:08:19Z" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:19 GMT - request: method: post uri: "/chalZ/Wn6HwWqfyAGoGlA8QXPPGYarC0h9j3nRYUa5tFMIiNw" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoickZQMUdfUWxxZVB0TEdNNmgtUFRHZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9jaGFsWi9XbjZId1dxZnlBR29HbEE4UVhQUEdZYXJDMGg5ajNuUllVYTV0Rk1JaU53Iiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNjYifQ","payload":"","signature":"i2ddOjl8HOZ9VKdNAv-1leSi9GPRv6k5CcL-A4G_zMnkc5u9ArQGo4UdDxT8PJ4X41MhbEN6CFomOP_af1UijhxIuNRepjFNai56gaMzXkt2zxDGcVXMUS4xpxLvHcxv5WYFYJmpwRmHMWDAvPwy6MEA9aUkYHlgVzHLgMbCHKpfWcgN9kwb2lyynL_E6bxCBw1MhqW-MSgZcSIkFik3GtQYBjuOFon1yB3XkKTtr9m56rWXUl89n_d7FkRahq0CfbNBeZdbNMfX4TY4uHwhiOUZq0x5258xhz7YFYxUb5_JzJhEtbnLHEW27qsVtt42beilcS1hG9nk8TaKUh2Aww"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - kVO9AKyN_PJBf54MhH-DZQ Date: - Thu, 10 Oct 2019 03:08:19 GMT Content-Length: - '198' body: encoding: UTF-8 string: |- { "type": "http-01", "url": "/chalZ/Wn6HwWqfyAGoGlA8QXPPGYarC0h9j3nRYUa5tFMIiNw", "token": "G_gAR_pnAeg8kGsmvmlqwN33sFr3fg5NhWIcgL5kAoo", "status": "pending" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:19 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/fetch_order.yml000066400000000000000000000207311411343312700216440ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:21 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:21 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - SQucpxiDtoAsofQrzylqYA Date: - Thu, 10 Oct 2019 03:08:21 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:21 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiU1F1Y3B4aUR0b0Fzb2ZRcnp5bHFZQSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImUiOiJBUUFCIiwia3R5IjoiUlNBIiwibiI6InR2cVloWDNrMmZrY3k2TVdnVjRLeWJGM1cxVm5vQUJWYS1SNDdWSnNFR2FaRk5CN2dqSmhuUnkwM3VBTG9TRXM3ZGcxaXJQVGdWXzk0b0JnVHdjb09FN3hsYkZqR2ZqZVhFRzRneV9ScW5nVS1qYzFCa3ppTUlCVlNYTThEWDFRY3BJRV9NMzhwemZMWnZBVkluc2tRNjZYUThiVDdmc0VnMnRTWm1kTHVqU3NwNUNHTUh0RjRqRmVaX1JOYUZBR1p4VEh3MGR6WnJQTUdJaTJjamcwUTdGOXVJd3pfSHI2M25wMXJ4WkhXbUY4Wmxoa1pCUmJjRkJKenEyLWJqbTd6bWcwRTVhMmRzQXZuNjM1dEZwd0VuMjRpMk5tUFlFVzE0Rkg3SlFfZTNTYjNBV1AyOURGc3VfV3hXU0Q2UnFMSGNpbGRwMVdYX1lOS0pNWGZpenAyUSJ9fQ","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"CGaYIMzuj2H77stk347kKJ_5jsu6lZ_RBgyXDKA8B2_xqaKfKUtV0fa0bU1MK3u236elaSKsNSG0w37AK62sAZiVa3-aIXEemDjYxewiUbqNaSwRihH2Z0RYYjqjSOHWQPgd3eo0B_g-v-Cb5dXh58UbsNrwY5uelg-1YmgEzDkpHC47o9KiFNZzYL1c6mgD0dcOCKgjeApH3Adfq8cpeN4SJNotzb60dKlKEp6Mn31jn9W-SodCyiZVhqsUUQx1OJn61_x_7B3yrOWzp9Sv-NnHTlM1apBTpYsTs66G7xLww2Nngr4y-1XPzREZgiTcW-GSDC4FhjBF0BoD9XWAMw"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/71" Replay-Nonce: - D6mJ6SG4fxDyDpW1atX-HA Date: - Thu, 10 Oct 2019 03:08:21 GMT Content-Length: - '550' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/71", "key": { "kty": "RSA", "n": "tvqYhX3k2fkcy6MWgV4KybF3W1VnoABVa-R47VJsEGaZFNB7gjJhnRy03uALoSEs7dg1irPTgV_94oBgTwcoOE7xlbFjGfjeXEG4gy_RqngU-jc1BkziMIBVSXM8DX1QcpIE_M38pzfLZvAVInskQ66XQ8bT7fsEg2tSZmdLujSsp5CGMHtF4jFeZ_RNaFAGZxTHw0dzZrPMGIi2cjg0Q7F9uIwz_Hr63np1rxZHWmF8ZlhkZBRbcFBJzq2-bjm7zmg0E5a2dsAvn635tFpwEn24i2NmPYEW14FH7JQ_e3Sb3AWP29DFsu_WxWSD6RqLHcildp1WX_YNKJMXfizp2Q", "e": "AQAB" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:21 GMT - request: method: post uri: "/order-plz" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiRDZtSjZTRzRmeER5RHBXMWF0WC1IQSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9vcmRlci1wbHoiLCJraWQiOiJodHRwczovLzE5Mi4xNjguNTYuOTM6MTQwMDAvbXktYWNjb3VudC83MSJ9","payload":"eyJpZGVudGlmaWVycyI6W3sidHlwZSI6ImRucyIsInZhbHVlIjoiZXhhbXBsZS5jb20ifV19","signature":"gT151BKCpotf8_gxJMBKKV-WyNvj7KEAVYj1xbrrgg0GIWK-MCf3OAmAjAw2Y2rLZ_KI1eoANt3zLO3hAPu1g7sIPUoLkUbGaHI9Q779A6ci3TO0mfrGRcGcCbI-MPfRM7ImRyE7UUmmPgYjgbyDtBhzaIAV4SSC1ao1ZloxZ-TTl9N4AnceqiOXMU34h1U2-5Dr7XFlOTr-pmIVYpoNV1fevI-MqUG9V963b8y8aNapsoRTEZ3pUV6v5urH3u69ANF_JDyKt1BrpnnMcv4Gl85OI49kUlZDbGinBjpFyKDi0tMNGMvYymmFGcP9FQaTCZrW0FLAXKvk5GyPDTOf4Q"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-order/s88t_BrZhdU3yXxD8X6wl38rayJb3i4nAYtojBYX7hQ" Replay-Nonce: - FmZOwMUeo_tO5q5iVNUwUg Date: - Thu, 10 Oct 2019 03:08:21 GMT Content-Length: - '382' body: encoding: UTF-8 string: |- { "status": "pending", "expires": "2019-10-11T03:08:21Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/s88t_BrZhdU3yXxD8X6wl38rayJb3i4nAYtojBYX7hQ", "authorizations": [ "/authZ/mn-gp8UtVvXkVZZR5k9V_TBiJ0AW88B-yIeDPuxIe98" ] } http_version: recorded_at: Thu, 10 Oct 2019 03:08:21 GMT - request: method: post uri: "/my-order/s88t_BrZhdU3yXxD8X6wl38rayJb3i4nAYtojBYX7hQ" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiRm1aT3dNVWVvX3RPNXE1aVZOVXdVZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9teS1vcmRlci9zODh0X0JyWmhkVTN5WHhEOFg2d2wzOHJheUpiM2k0bkFZdG9qQllYN2hRIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNzEifQ","payload":"","signature":"e9Ca9BpWwP4PwEhx4wwIAQmwozYzZshU-PeVZ2R78NyxBiQjSyWnv8cNpRaoiKeaAZqw3vWgfk6xgoo5cfSCjLfUeWVe4vDkOiogtl9uhI8cpVlfKf2Fy7R6benhwMC_Dl4J-kvrGzEN-atIScrhNspP3NWKb04i8sOi2MG7UOetL1Qb8LyRjO5nqYYec-B9o76uurpaa-pa7g-OOSXnv50Ku2q4G0Q5laysGXM1WG-fhRtz7ZbrTYa9DG9tG9FBhsaa2v_oh6_hHD3m7tyipMuvYELiwAHJb7N3BNiVwcv10wcHL1JT-dtLxhNA_JQ0-WoDTvJdBqD2RKADYdm_4g"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - "-mC_HWZmhQNJKYQcGLh73g" Date: - Thu, 10 Oct 2019 03:08:21 GMT Content-Length: - '382' body: encoding: UTF-8 string: |- { "status": "pending", "expires": "2019-10-11T03:08:21Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/s88t_BrZhdU3yXxD8X6wl38rayJb3i4nAYtojBYX7hQ", "authorizations": [ "/authZ/mn-gp8UtVvXkVZZR5k9V_TBiJ0AW88B-yIeDPuxIe98" ] } http_version: recorded_at: Thu, 10 Oct 2019 03:08:21 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/finalize_csr_mismatch.yml000066400000000000000000000204111411343312700237100ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:17 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:17 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - GXczlu0gkaz9hfJDHEcwBw Date: - Thu, 10 Oct 2019 03:08:17 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:17 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzM4NCIsIm5vbmNlIjoiR1hjemx1MGdrYXo5aGZKREhFY3dCdyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImNydiI6IlAtMzg0Iiwia3R5IjoiRUMiLCJ4IjoiR2RNdFpGZDJzNEtKeG93bkhaZFA1VlVUZmo1X1hBMW5NaEZndVpMVW1aaGVoS2JNem44cGJic014c2JwVnF0ZSIsInkiOiJUWVRkc1lqZHlCaGNKTmhPQ00zNWhONGRfb0dsSUxhYVk5eEE2LVJMbmNGMjU0OWRoRl9adVpfNG1VM0cwZEVTIn19","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"RQGej3TMtlH-b9zxWYDQ3sGggk-dbsZ8ggYJgnndyzfXhmjmvdFHmu1L_dvHeZExgRACKz-wJ0BNReSbSUx1pQ8lNqRJ3FB4z_Sda4aqzugrP3FEwpuAlLHPCG65IaB-"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/63" Replay-Nonce: - oFjdTc4wJw0sxQAusW1Q_g Date: - Thu, 10 Oct 2019 03:08:17 GMT Content-Length: - '353' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/63", "key": { "kty": "EC", "crv": "P-384", "x": "GdMtZFd2s4KJxownHZdP5VUTfj5_XA1nMhFguZLUmZhehKbMzn8pbbsMxsbpVqte", "y": "TYTdsYjdyBhcJNhOCM35hN4d_oGlILaaY9xA6-RLncF2549dhF_ZuZ_4mU3G0dES" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:17 GMT - request: method: post uri: "/order-plz" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzM4NCIsIm5vbmNlIjoib0ZqZFRjNHdKdzBzeFFBdXNXMVFfZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9vcmRlci1wbHoiLCJraWQiOiJodHRwczovLzE5Mi4xNjguNTYuOTM6MTQwMDAvbXktYWNjb3VudC82MyJ9","payload":"eyJpZGVudGlmaWVycyI6W3sidHlwZSI6ImRucyIsInZhbHVlIjoiZXhhbXBsZS5jb20ifV19","signature":"1ISgCKMUhjglypqKXyEmULV4J1vyhNAshkxDfu2D0EArY7utlRRw0ahCNInkKoeXy8aCa0Stiz8xA0-sjVUyYarL8gb60M0txVspnDfxpBgHUqY8XN3YdqDFXKfuyI-p"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-order/FCHtrjjJ_JJQ3FR4WtbKYFRBxOZ7bYexpTahYSl4IW8" Replay-Nonce: - KjoGejdmIPhyAOlD0ky3qQ Date: - Thu, 10 Oct 2019 03:08:17 GMT Content-Length: - '382' body: encoding: UTF-8 string: |- { "status": "pending", "expires": "2019-10-11T03:08:17Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/FCHtrjjJ_JJQ3FR4WtbKYFRBxOZ7bYexpTahYSl4IW8", "authorizations": [ "/authZ/VKWYiW8aGi--RjmHFnFinPbuCkB67B3Haf74DQVc4JU" ] } http_version: recorded_at: Thu, 10 Oct 2019 03:08:17 GMT - request: method: post uri: "/finalize-order/FCHtrjjJ_JJQ3FR4WtbKYFRBxOZ7bYexpTahYSl4IW8" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzM4NCIsIm5vbmNlIjoiS2pvR2VqZG1JUGh5QU9sRDBreTNxUSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9maW5hbGl6ZS1vcmRlci9GQ0h0cmpqSl9KSlEzRlI0V3RiS1lGUkJ4T1o3YllleHBUYWhZU2w0SVc4Iiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNjMifQ","payload":"eyJjc3IiOiJNSUlDaERDQ0FXd0NBUUl3RmpFVU1CSUdBMVVFQXd3TFpYaGhiWEJzWlM1amIyMHdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFDcFZ3V1hDRHRNX2w0TFJpMExtWDVjQlFVOUROMDdTOWpQQXRBNG9rSFVBVGZLWGRFc3dSdlZPb21TVDBNRTdmWWs2TXVCb1FMZ0FDMUdKejdHTXRMVWg1eERXaU9panlhU1dDQXZtb19SUXRoVUc0TVhxQm9Ha3F2V2hfZlg4OXVoS0hSSUNrS1VOWUkxdWduSnd5cTM3ZEN0QzBGb3JZTmc3ckRlQkVqMGxSMkVOazM0M2ZsN1FHR0t2eEpUamxFVGdGQjZXTUtCRUVzd3E3eDYzLWg2WHp0VDNaN1BWQVZaWTJPdUhkVmhBX01PSExLSTJNRm5NRjhyQ0xKZ1kySWQ3ektqcmMyeTNEVldRY25jRmpkc3dHbTJnd2ptN1FZcGFvNXlxeGlvWmE4VFhvNk1HeWk4SnZXaTJRSDFzbk11MVc3eGdhRmdLWVpITXJabnNzb2JBZ01CQUFHZ0tUQW5CZ2txaGtpRzl3MEJDUTR4R2pBWU1CWUdBMVVkRVFRUE1BMkNDMlY0WVcxd2JHVXVZMjl0TUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFCTi1qUUc2dVliX1pMNVEtVXhPRXVaQ2hMQ0RrOVJGbEFEd2NJYk5uRVZQRG1USDZTamRfN2ZqOW1YbWJ2dHJvbTl1RFhlZjI3QUtsZUNidnNjcHZ1Tnh4b3RIUFZVTjhWZ1hrU0U1RkJSQkJHTUhzeENFZVRRTDFfMjdaZndzeERhY3pVdk10a0xkTWxJZ2xLU29sdTlaYi1DcllfdVdobG9jQkpyWnUtNzRqS2o5WFhCYTdXbGpCV1ZqS3ByN3lQdmVadm56SmN2NDdMV0dycmtodnBwX3lTX2x3Q2pYUFhzOWRCZk5rcTFPeEJNVDVFeDA1VVc1Skd6SXYzN0FYM3NWUThXX05VYlU4VWpuYXNsY1pEOE5Kakl5ZkpLb0JPdnFYbUJ4Wm9lSS1JMUI1UjZyMWRXdVdNMWh3cnItVlFFbkg3ZEZvQm1SYVp3aG5FQWg1X3YifQ","signature":"Uotrk-GvVEj8r3Gt2r8PvQauJpdEd0jp2zVghi1zmrKk-UkvYdn-zKjtpl4eALAFCCrjSBdetn55_KLj8fUi57yvCel1iShosC2bLc5P9zg7MNcBmzS6dYupYVmeqiSf"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 403 message: Forbidden headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/problem+json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - a7JFEV9KoowVk65HsNvv5Q Date: - Thu, 10 Oct 2019 03:08:17 GMT Content-Length: - '134' body: encoding: UTF-8 string: |- { "type": "urn:ietf:params:acme:error:unauthorized", "detail": "Authorization for \"example.com\" is not status valid", "status": 403 } http_version: recorded_at: Thu, 10 Oct 2019 03:08:17 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/finalize_incomplete_challenge.yml000066400000000000000000000200511411343312700253750ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:19 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:19 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - K6Keaf_hlKfQ82HWm-G-Ag Date: - Thu, 10 Oct 2019 03:08:19 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:19 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIm5vbmNlIjoiSzZLZWFmX2hsS2ZRODJIV20tRy1BZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImNydiI6IlAtMjU2Iiwia3R5IjoiRUMiLCJ4IjoiMUNsRExlQWU2dGJucDVtYnZJd3l3bWNLQ2lmYnFRLW8tUjZTQUNVaTFlbyIsInkiOiJnQXBrN2hfR0ZVTjRFOHYwR3BhRTA3R0d2c3AzaUtZS3pxeWYzWE9RUnNrIn19","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"HWsjD7veqG5m1w9_bZphxrG7-fUw_pD9W0TWhmnADTIui1HyzO3pEkTLJzvuohT8ku-nEiv_5vQ8kZ0FA5ZUIg"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/65" Replay-Nonce: - NJ-NKUczfaAvKEiLFEyONQ Date: - Thu, 10 Oct 2019 03:08:19 GMT Content-Length: - '311' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/65", "key": { "kty": "EC", "crv": "P-256", "x": "1ClDLeAe6tbnp5mbvIwywmcKCifbqQ-o-R6SACUi1eo", "y": "gApk7h_GFUN4E8v0GpaE07GGvsp3iKYKzqyf3XOQRsk" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:19 GMT - request: method: post uri: "/order-plz" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIm5vbmNlIjoiTkotTktVY3pmYUF2S0VpTEZFeU9OUSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9vcmRlci1wbHoiLCJraWQiOiJodHRwczovLzE5Mi4xNjguNTYuOTM6MTQwMDAvbXktYWNjb3VudC82NSJ9","payload":"eyJpZGVudGlmaWVycyI6W3sidHlwZSI6ImRucyIsInZhbHVlIjoiZXhhbXBsZS5jb20ifV19","signature":"tOiiCTnwVkE3GOfBrnyYu4MXBgFFc2K7Q8WVySB8O_4SwBcL29jBInRt42oZh3T5hWP2OsnvmLKIwYUH7aNDZA"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-order/OIYUGTYBfQtcj2teUTSC9awjYnmCESsv4C3PIHLvOFM" Replay-Nonce: - RC_YXTj817HrScAGJDCBwQ Date: - Thu, 10 Oct 2019 03:08:19 GMT Content-Length: - '382' body: encoding: UTF-8 string: |- { "status": "pending", "expires": "2019-10-11T03:08:19Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/OIYUGTYBfQtcj2teUTSC9awjYnmCESsv4C3PIHLvOFM", "authorizations": [ "/authZ/2HeBGz9uoauxqW-o2jP9UBBw9kMdhf_nwzkkJ9v538U" ] } http_version: recorded_at: Thu, 10 Oct 2019 03:08:19 GMT - request: method: post uri: "/finalize-order/OIYUGTYBfQtcj2teUTSC9awjYnmCESsv4C3PIHLvOFM" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIm5vbmNlIjoiUkNfWVhUajgxN0hyU2NBR0pEQ0J3USIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9maW5hbGl6ZS1vcmRlci9PSVlVR1RZQmZRdGNqMnRlVVRTQzlhd2pZbm1DRVNzdjRDM1BJSEx2T0ZNIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNjUifQ","payload":"eyJjc3IiOiJNSUlDaERDQ0FXd0NBUUl3RmpFVU1CSUdBMVVFQXd3TFpYaGhiWEJzWlM1amIyMHdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFEUnQ2RHhVVE0tdzBsWUV3RHFJVnFMNUxMT3QyWFY0Y0FOTy1oWXJsb3FhR2RBU3hzRWhSTlJyWmxlRk1KWnU4bFVVbFhUX290LUZmMXo3OUxqdjVWNUstYWJhRWc1VzFzZGNpelExai1zQ0J0MDB0Y24xQ2lLWHRHdEtrbHpnT0RFMlFBWDl4ZlZNaU5XaHdhNzE3RmFvRW5LMTIxMFozd1hJVEh6RW12UjYxVXRyRXBOQjJSNWZReG01WWdnQ0FlMjFZdUtpZEo3SHJkUzdEM2ZGeFhaTWlpcEJrWGJoTE0xMkpIcnQ3OVlaTmpFdWdCR3Z6OGRUbGdqOHFNcnNXaGRXYXhVVldjNGpZTWN1b0swTzJGSWY2U3NYbktoSDUtbjI4Q2JmcTNYMmhST2RQZkkwV3pEYm9QZFM4dXNIRUJGZ2VZYU9jdUFXZTJjQlZlbXRKUzNBZ01CQUFHZ0tUQW5CZ2txaGtpRzl3MEJDUTR4R2pBWU1CWUdBMVVkRVFRUE1BMkNDMlY0WVcxd2JHVXVZMjl0TUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFCWnBvajZmWFlsekdCNzlaeVBGalFWM19JWF8tcDdNN0lXQ2haWkx1YXQ1SVVNM3N6cFpfWFJZaG5GcVNOUFRUMkV6RWdONHBuNnZZZ0tZQVd3RmF5d19OTExoQ2E1MVlUSEtITHFZME5JYzVjLXN2cTRTblBoYVpyNnBHSTF3MW1sdEFzZ3I1RFJ5bVZjazA2M3BXaS1vMGx3LUdmNDJndWxuZHE0UERHd2lTR0FrbElqXzI4b2tYNWFWVDlmX01xVlZGYkVNSk9FSjhjOVE5Mzdlc09CZmJyc1g3a3VTd3BNMjhENlJsLWhZLXZtdEQyRVc0V0wxOEV5YkhFWFFrblN0ellWSnA3R09nNGpUR0lMbWhUbjEwUTlSQzlfT1NLUENZQXJreXlYd2ROeHVoZ1Zzd0NEa3dHYlk4dUpCZElyVmpCSE5Id0RhWDgweTEzcV85SGgifQ","signature":"kevRne3gCeUE-C0CjutYtXZE7RX2ZEvhDh8FQGiKpCF8uFjBtsd-jaR8bA8qVw7e7V_MbTw9iWCJREenK8rQ9g"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 403 message: Forbidden headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/problem+json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - Gh2bkhOhgRLNv2BrfHz4jQ Date: - Thu, 10 Oct 2019 03:08:19 GMT Content-Length: - '134' body: encoding: UTF-8 string: |- { "type": "urn:ietf:params:acme:error:unauthorized", "detail": "Authorization for \"example.com\" is not status valid", "status": 403 } http_version: recorded_at: Thu, 10 Oct 2019 03:08:19 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/finalize_succeed.yml000066400000000000000000000402621411343312700226550ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:17 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:17 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - hSEy0mLSdD6KNZWhRBQv8g Date: - Thu, 10 Oct 2019 03:08:17 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:17 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiaFNFeTBtTFNkRDZLTlpXaFJCUXY4ZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImUiOiJBUUFCIiwia3R5IjoiUlNBIiwibiI6InVhYlZQTmJZMV8wYklGWjVqY1JBQTZhQnlOck9Nb2RpWkpTbk9kQUFyWHRQS1ZLVnBHZHZ6RHI2VVZFcEtGdTNMSGdubnpWdUllUXFsN0dXanBpelNwYjZDVUJzYk5QWlpYRFRhNXJHNzhNS3NQY1MyRjR0aU4yb0FOWmNQQVNDOG5VUkdrY2tTR0VJYkVQb195VkRpUURybkhHWnNuRVVxRXlVVFFqVTBMOEdYaUVWMWgwR192Rmxqb21nQzBfQjNVSzNjaDRuQlFMYklBMHlzU0FfMGxFZkgyN04xWGVDVzVoa29ELS11LVR4RDBTbzZ2aHRybkY3aGxmU2RpWlJjX0NIaFlTeDJnV2QxVnNsYlhlcXhLeFFqdTBwb0JHQU44TmEyQ1ZOY1VWUXloaHNFNVp4cVU1TVRzYURwV3B4VGp5YmNfSmMzcEdqTm14VlhsbUxxUSJ9fQ","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"ICxSi8WsBsFLUqBbUIKW-TFRzu05zAf9b4Utle_9jRQz0KqI66ExXd7vC9zQkAuWLUCaoSdlS6JX3qph5n_-8jrQSYFUCMB4RQweIv_dpGKu6SKb3ntr6AuCjIpOdEpQT-Ko0V306ATOnmTaHnkQPi1n_2NZSvqk2X7GRilVNkUxO2Y1LvcuuDnG7pgAkQ-xepSUe5kDReAEcMNncHu9tRw4CKidMsz5qLlNM2gMh9glKKWjSDlCu4RWG0aRpM56i7jJljtk3WMLyD0GZv2o2cRA4V_D5bm_vuBv9ez8FA0GeXdEhgJK5r3XEpY2_zxHZ2BeWIw8CBnVzO08QWN37w"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/64" Replay-Nonce: - Db0YuU6RyZc1AHueDDVueA Date: - Thu, 10 Oct 2019 03:08:18 GMT Content-Length: - '550' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/64", "key": { "kty": "RSA", "n": "uabVPNbY1_0bIFZ5jcRAA6aByNrOModiZJSnOdAArXtPKVKVpGdvzDr6UVEpKFu3LHgnnzVuIeQql7GWjpizSpb6CUBsbNPZZXDTa5rG78MKsPcS2F4tiN2oANZcPASC8nURGkckSGEIbEPo_yVDiQDrnHGZsnEUqEyUTQjU0L8GXiEV1h0G_vFljomgC0_B3UK3ch4nBQLbIA0ysSA_0lEfH27N1XeCW5hkoD--u-TxD0So6vhtrnF7hlfSdiZRc_CHhYSx2gWd1VslbXeqxKxQju0poBGAN8Na2CVNcUVQyhhsE5ZxqU5MTsaDpWpxTjybc_Jc3pGjNmxVXlmLqQ", "e": "AQAB" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:18 GMT - request: method: post uri: "/order-plz" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiRGIwWXVVNlJ5WmMxQUh1ZUREVnVlQSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9vcmRlci1wbHoiLCJraWQiOiJodHRwczovLzE5Mi4xNjguNTYuOTM6MTQwMDAvbXktYWNjb3VudC82NCJ9","payload":"eyJpZGVudGlmaWVycyI6W3sidHlwZSI6ImRucyIsInZhbHVlIjoiZXhhbXBsZS5jb20ifV19","signature":"CdWpTv41mIDcveAdgmGrEhg_0zmS0iEjKWeO_e9yv15alpFFaLlubIveLVSI5XWYdVW-LtHTpjX0vZVX3WwIjDh0AjjB5wPwYj6pY4b_1bgtKvqIAyaMGRc09m3PlkvRlUNCGY_JnjeM1k4fxirZiEAVoToGc2-qcBYWEqjtJItNB4RFj3roRfpvIEsSKIBS0t0CjcCtlv-coEmS9I40Uia9EcE7ZtQLA8NOhjZ2NeAbgNwHFiV7_AEM0POQUyaSNQreIoXjgPbJFUolb0A_94--dIwfi38V5tOf-6BdMHhjoAodAlmUouoB5jyTDEW0EMGhMFZOH-_RHmRE1IPcFA"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-order/OY3TeRFpQZCeVlpCjQ1xK83wJl2xHjw0rhyyj1Z948U" Replay-Nonce: - W36VkKzU4aSU6OqZLBJKTg Date: - Thu, 10 Oct 2019 03:08:18 GMT Content-Length: - '382' body: encoding: UTF-8 string: |- { "status": "pending", "expires": "2019-10-11T03:08:18Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/OY3TeRFpQZCeVlpCjQ1xK83wJl2xHjw0rhyyj1Z948U", "authorizations": [ "/authZ/DQl_qQdol1ly9_vDLHcBL9nwM-i4j0kr9RCluzfXuic" ] } http_version: recorded_at: Thu, 10 Oct 2019 03:08:18 GMT - request: method: post uri: "/authZ/DQl_qQdol1ly9_vDLHcBL9nwM-i4j0kr9RCluzfXuic" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiVzM2VmtLelU0YVNVNk9xWkxCSktUZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9hdXRoWi9EUWxfcVFkb2wxbHk5X3ZETEhjQkw5bndNLWk0ajBrcjlSQ2x1emZYdWljIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNjQifQ","payload":"","signature":"BMfkHr4y29v2qHK90aGOzL0JME-IKL69CNYzLvgawgMWzPjqJh4CcjC9BD5ui8aib2TmC3sUMkgHC4O1PZGrizifeEDugEUp7So4WeRjNdER31vmTCH7LBH-BSIDZfKJOgsAc2P-Kyv3SWfN-yncd8KlrvB0AAjuuKnsieRF9gIj-ycFMKZmeEqRnzoPaLLSEHOriOubqndxmrN2z0KNVnWQ31C6fo1fWNxilse98Kgqo1I6-XCqD8JOzfdEx4K6OHXjc5ijUGg-CmwXCYzlTqyjYHQ-65vqryQNqtCjpPyeHsO5LZxY86Vpe7NMtg1ZySdM5Ciseaf4LIIe92wXmg"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - TH8Krd6LatMIGi6ZHhuMGQ Date: - Thu, 10 Oct 2019 03:08:18 GMT Content-Length: - '874' body: encoding: UTF-8 string: |- { "status": "pending", "identifier": { "type": "dns", "value": "example.com" }, "challenges": [ { "type": "http-01", "url": "/chalZ/WZnFEHMKIVGUfFw-RUtCQvfnIycxkY2iSBX6eWyil4o", "token": "4UGWxqSi8If8_QG41sKyqglln7fJyNNTw-gcx0NeDII", "status": "pending" }, { "type": "dns-01", "url": "/chalZ/ZwBJTf-J30Mrt5Q3Wlw7KUor9BFvYoyrjwia3xTB4To", "token": "2t7SK-ZlP7Br6mCKSh2xgrAe7F5PbtO5FWXOat5ghWg", "status": "pending" }, { "type": "tls-alpn-01", "url": "/chalZ/Gbfn8N_UDiUhoPoSeA217_9iJKE7MjvmrH38DMv_HA8", "token": "tPtbSCOXPDs32Y_c_RcbylcQvpOpj85CrP7_sFdRymY", "status": "pending" } ], "expires": "2019-10-10T04:08:18Z" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:18 GMT - request: method: post uri: "/chalZ/WZnFEHMKIVGUfFw-RUtCQvfnIycxkY2iSBX6eWyil4o" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiVEg4S3JkNkxhdE1JR2k2WkhodU1HUSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9jaGFsWi9XWm5GRUhNS0lWR1VmRnctUlV0Q1F2Zm5JeWN4a1kyaVNCWDZlV3lpbDRvIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNjQifQ","payload":"e30","signature":"FsFMlegxOClT8Ee4uK7sgOTo0ryPNs4f4LKqKWgHu-4AX1Yu3WkjFDnJQDdQjXOzbt4dSdlSMSVscwm0y_3cV2ylqJ00k2NAizvSCoI-mSgxMMW2QV7O37eWQDmqi8ZjiHh4L5wGiH1gv_Ig-Xzl2-cHYIRhdMqv5GSBOlVzGj7tGA3lwRtjZq013fFFmqOroA_R2KGTPQgrAmvfst_RltXrvnwAuz924ODvPCnasY8le_HvRq1isqYXoyQx34L2ddpR9siyRy0x33OvrCO8uQptTarW7ZjNpicCVgnQinpWZEo5-RXqPJacWu9tst79o3kzqjjMo2jx3iz1RFIHaA"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - </authZ/DQl_qQdol1ly9_vDLHcBL9nwM-i4j0kr9RCluzfXuic>;rel="up" - <>;rel="index" Replay-Nonce: - aDkk4qNPps3YnooQNddJRA Date: - Thu, 10 Oct 2019 03:08:18 GMT Content-Length: - '198' body: encoding: UTF-8 string: |- { "type": "http-01", "url": "/chalZ/WZnFEHMKIVGUfFw-RUtCQvfnIycxkY2iSBX6eWyil4o", "token": "4UGWxqSi8If8_QG41sKyqglln7fJyNNTw-gcx0NeDII", "status": "pending" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:18 GMT - request: method: post uri: "/finalize-order/OY3TeRFpQZCeVlpCjQ1xK83wJl2xHjw0rhyyj1Z948U" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiYURrazRxTlBwczNZbm9vUU5kZEpSQSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9maW5hbGl6ZS1vcmRlci9PWTNUZVJGcFFaQ2VWbHBDalExeEs4M3dKbDJ4SGp3MHJoeXlqMVo5NDhVIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNjQifQ","payload":"eyJjc3IiOiJNSUlDaERDQ0FXd0NBUUl3RmpFVU1CSUdBMVVFQXd3TFpYaGhiWEJzWlM1amIyMHdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFDNnZwSm1ReFllSFZCRlQ0X2gzblBsd1BYWnJqdGgtTGlob3loZVFmY2szZXF6SEVIMzVCczNkdnUwdEhOM1VpaU5ITWFyM1FnbmI2ZVhtT2lJZFBtaC1QclFvMEZuRUx0TjR4MUM2QlRvcDhDSTVURXdmSlR2dVNXYVE4REpyd0hOYlEyREQweENlY0c3dlByZHhseGhrcUZJUm9tWTJUYWxLZjREX3F0d0FSaWg5eWFPdWpkV0dqeXM2VDlUbnhoUmFOekJVZDZxdEN2TlItZ3pFV1k2aW5zRXlVcFZKUWtPMGtJWDdpaFNTdG5qYkdiRWtuV2dPbnhwUlVlYi1Wd19OLUFqUW10MUcxLWVkQkYxdkZYQ0ZVVnRBY3MzY2lkblFsTy1FWTN6SE5hdnBRYndTSFFhN0ZaYkRuN18yTm1PYXRlYTRKbHZpRjlxdFhHbmdQcnRBZ01CQUFHZ0tUQW5CZ2txaGtpRzl3MEJDUTR4R2pBWU1CWUdBMVVkRVFRUE1BMkNDMlY0WVcxd2JHVXVZMjl0TUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFDcm1sV0N6X3ZWVEpKUjVTWGxadGJHcjNBeGxsaEdWQXV6N2UtTFRHckVCUmllRDBNODctLUR4QWNNV19uS0I2UFgycWNST0swVTJGcXVrOU4zcTM0eEFuTmhyM1hSaFJ0dkxmYVJnZnFoWFdMR1RPeFJtRllBMGRRcDV5ZUItcXpnTUZrZEpiT0M2ZTZldV90TkpLaUhfM2VQeXRlRzBHMlF0b0lTeFF3WGd0clpCOVExeVQ1el9ETmFNNTQ5eFRINjBOYzdIV3V0MjJRQTFjRDlFMkF5Tkx0TnUxVVEzZEtJbE0xUndYa3hveVBzQ1g1OFJybmQwdXVXckNCVmhnYmp6aDYyTE02YWtleWYzT2ZYc2xjTHpDNVowQmI4T2JrS3JmLVhrVzFTY210WVBDUlVHWG9iVy1xT3l2SVRqeDdneVlkc2ZiWmhQZjRtbHU5QVhPdmkifQ","signature":"QAe6qcKEGtEDHs5oZVox8CkAI1_ft-bf4Lyp1wjOX_xp9LNtldoIzZX755l7CnFBdZnqyRCA9DlaL29IGh4gXA-n1tzX7w9yhEpuuRn1Lhnq11MVx_2gao4xB1puKJLCNky4An8OG8vwSUH9mkPav1Bz4FFQ6yIYsmYvlaAlR5IWQsdC-EcczvdGmpX7YINBZOG8yiEki-7qDlmtbhOsiflD_aqtDeXM67Bezswx-B1mbfEOmk0XRE_j6Z1vVoBb7hX8e-DqwX6aFpnGEqS6HVP0LrWxfrrykJByWTAnFejd5yeEC3w-z3Jt67FFbjNw1m9RUCmr5DoCjK0joZ7mSw"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-order/OY3TeRFpQZCeVlpCjQ1xK83wJl2xHjw0rhyyj1Z948U" Replay-Nonce: - uEPWBeuh1BYmaH-b61A5nA Date: - Thu, 10 Oct 2019 03:08:19 GMT Content-Length: - '385' body: encoding: UTF-8 string: |- { "status": "processing", "expires": "2019-10-11T03:08:18Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/OY3TeRFpQZCeVlpCjQ1xK83wJl2xHjw0rhyyj1Z948U", "authorizations": [ "/authZ/DQl_qQdol1ly9_vDLHcBL9nwM-i4j0kr9RCluzfXuic" ] } http_version: recorded_at: Thu, 10 Oct 2019 03:08:19 GMT - request: method: post uri: "/my-order/OY3TeRFpQZCeVlpCjQ1xK83wJl2xHjw0rhyyj1Z948U" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoidUVQV0JldWgxQlltYUgtYjYxQTVuQSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9teS1vcmRlci9PWTNUZVJGcFFaQ2VWbHBDalExeEs4M3dKbDJ4SGp3MHJoeXlqMVo5NDhVIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNjQifQ","payload":"","signature":"JWM_GKvH2Kb-rsv52CmFnRNI32vpGqOJ_6M1DVv2l-HFn6auBedKvHiBPsxYgL_57NkX2rTkLKbSNpqzwsdBa6Z1aoJekX-SCBgkp7xyh7Zd6iYb7sNI4JJRLpSfXiXj6O_p_t4jL2YJuhV9088s8OS8XWVLswjVzsjeCxUmrUFWpCq9nZICezkggFCJVz60cN39yrEdTfuycrQyJd5JxbRsJZ0f_eWmRQtdsrdNZxgsymf-jp9zQouuwbS9xQbJUtM8McEaTUQ5FxXfkz7Qpo2FOFTEzTzBF5ZOMbC0DfEPUl3NCJMBEea-HR4O9Zs3lmjgfhGZpAlVly6EvYPsMg"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - "-_gyW-MwtP43DGyw1qxmig" Date: - Thu, 10 Oct 2019 03:08:19 GMT Content-Length: - '452' body: encoding: UTF-8 string: |- { "status": "valid", "expires": "2019-10-11T03:08:18Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/OY3TeRFpQZCeVlpCjQ1xK83wJl2xHjw0rhyyj1Z948U", "authorizations": [ "/authZ/DQl_qQdol1ly9_vDLHcBL9nwM-i4j0kr9RCluzfXuic" ], "certificate": "/certZ/24c68d31ee7f06d8" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:19 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/get_nonce.yml000066400000000000000000000034361411343312700213240ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:14 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:14 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - hpHeIywErqvdFwQwSQbM2w Date: - Thu, 10 Oct 2019 03:08:14 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:14 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/load_account_unkown_kid.yml000066400000000000000000000253331411343312700242460ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:15 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:15 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - wTrCXDiiVZa4RYUFyV2vyA Date: - Thu, 10 Oct 2019 03:08:15 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:15 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzM4NCIsIm5vbmNlIjoid1RyQ1hEaWlWWmE0UllVRnlWMnZ5QSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImNydiI6IlAtMzg0Iiwia3R5IjoiRUMiLCJ4IjoiMFM5eWY3YjlybmVOUGFRdFlTeG9JemhoOFdiU2RCYW10Tm5PM1YzZnB0LTZrZmVJUXJ0dWItNkNJdVAxVktSayIsInkiOiJIcEtfV0FlTXdnRWhkRUpEc3dpZWxQRFMwSFo2dzV2R01Jcm45S1VCcFF6YTY1OG5XeDVOTWdnUTR6ZkdhVFNvIn19","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"Pe_Dw3cmivDoaI6G5AOI5e34nDYfXtO-ynKXP-hyEjFOLXHKAm_T8YMzbgvi8Rc1I2jRbOlItkX7WnA6QQYGhYCz5h1H1Z-SGwzdekqtFJ0Bw_qpUOAkzZP1-4_hxwfe"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/59" Replay-Nonce: - PZS156QXCqPRA0xFEMnLrg Date: - Thu, 10 Oct 2019 03:08:15 GMT Content-Length: - '353' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/59", "key": { "kty": "EC", "crv": "P-384", "x": "0S9yf7b9rneNPaQtYSxoIzhh8WbSdBamtNnO3V3fpt-6kfeIQrtub-6CIuP1VKRk", "y": "HpK_WAeMwgEhdEJDswielPDS0HZ6w5vGMIrn9KUBpQza658nWx5NMggQ4zfGaTSo" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:15 GMT - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:15 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:15 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - aEVM1B8IwvKPpaYLkrYvDA Date: - Thu, 10 Oct 2019 03:08:15 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:15 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzM4NCIsIm5vbmNlIjoiYUVWTTFCOEl3dktQcGFZTGtyWXZEQSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImNydiI6IlAtMzg0Iiwia3R5IjoiRUMiLCJ4IjoiMFM5eWY3YjlybmVOUGFRdFlTeG9JemhoOFdiU2RCYW10Tm5PM1YzZnB0LTZrZmVJUXJ0dWItNkNJdVAxVktSayIsInkiOiJIcEtfV0FlTXdnRWhkRUpEc3dpZWxQRFMwSFo2dzV2R01Jcm45S1VCcFF6YTY1OG5XeDVOTWdnUTR6ZkdhVFNvIn19","payload":"eyJvbmx5UmV0dXJuRXhpc3RpbmciOnRydWV9","signature":"ZKXwaOLsTQnSIw5CGTl3tM8u-5_lTNCYSyvfDJGbz5nCsBi7cXjjPHydME7Bl2iVU3bKos0k0haptvTrYcheMmR6KeukQVvnTF_GPd21KoOHA2T7uQjHqvcwx6hUYnLS"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/59" Replay-Nonce: - pV3Ghfe-5Y5kbSb3NQSdxw Date: - Thu, 10 Oct 2019 03:08:15 GMT Content-Length: - '353' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/59", "key": { "kty": "EC", "crv": "P-384", "x": "0S9yf7b9rneNPaQtYSxoIzhh8WbSdBamtNnO3V3fpt-6kfeIQrtub-6CIuP1VKRk", "y": "HpK_WAeMwgEhdEJDswielPDS0HZ6w5vGMIrn9KUBpQza658nWx5NMggQ4zfGaTSo" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:15 GMT - request: method: post uri: "/my-account/59" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzM4NCIsIm5vbmNlIjoicFYzR2hmZS01WTVrYlNiM05RU2R4dyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9teS1hY2NvdW50LzU5Iiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNTkifQ","payload":"","signature":"b7NMxbLPItmmHc3e4EM7R0fcyX6K9XZYEjQIUO95E4WbFy3LpJuYN_rcq1e5IthkX4HxVbm4DoJjCalKwNxN6CLmsPxOeFfDFn72QATrLna6fVHnPEww6kBKavnr2rYT"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - DqngGoyWJ1gDlwouO4kKnA Date: - Thu, 10 Oct 2019 03:08:15 GMT Content-Length: - '353' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/59", "key": { "kty": "EC", "crv": "P-384", "x": "0S9yf7b9rneNPaQtYSxoIzhh8WbSdBamtNnO3V3fpt-6kfeIQrtub-6CIuP1VKRk", "y": "HpK_WAeMwgEhdEJDswielPDS0HZ6w5vGMIrn9KUBpQza658nWx5NMggQ4zfGaTSo" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:15 GMT - request: method: post uri: "/my-account/59" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzM4NCIsIm5vbmNlIjoiRHFuZ0dveVdKMWdEbHdvdU80a0tuQSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9teS1hY2NvdW50LzU5Iiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNTkifQ","payload":"","signature":"KPk1wyOe6fVytUwEtubmARc2xMwzKi9eto5nXVTrTsUDxDxT8SWoejgxe_ezPkn8xkdliQfwBUSXIZHqk7kwDmM4uvKrhvVqgfwr7bVQ1BTD4IGqFTfAsOiJbm-oIeSp"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - 7AIuBsSX3qEIyHX89NN0mA Date: - Thu, 10 Oct 2019 03:08:15 GMT Content-Length: - '353' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/59", "key": { "kty": "EC", "crv": "P-384", "x": "0S9yf7b9rneNPaQtYSxoIzhh8WbSdBamtNnO3V3fpt-6kfeIQrtub-6CIuP1VKRk", "y": "HpK_WAeMwgEhdEJDswielPDS0HZ6w5vGMIrn9KUBpQza658nWx5NMggQ4zfGaTSo" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:15 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/load_account_valid_kid.yml000066400000000000000000000162211411343312700240200ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:15 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:15 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - CW3g31Wdrs6FPgvGtFB8Ag Date: - Thu, 10 Oct 2019 03:08:15 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:15 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzM4NCIsIm5vbmNlIjoiQ1czZzMxV2RyczZGUGd2R3RGQjhBZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImNydiI6IlAtMzg0Iiwia3R5IjoiRUMiLCJ4Ijoid093WVBBUjc5c2plVldYc1kwaExFQmVZdkRhbTJVbmRrN1pGOGtQMy10VWE1eS1aSlJqaG54NmpYZi13eEhwSSIsInkiOiJfSl9WMW84blREcnJjZUI2U2VWand0SFl5azl4VTF4MjdCeGVhU3BDU0JtdkpkZ3k2M1I3d1VOcGhzd2gtZm93In19","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"nT_BdozJyFM3mphoiJgR0aptn2nYjyhNUtNNyNGCIJCWYI8L54zmo31LM_N31trdZzMKcIUzis_pXBz8yStPRXcQqJWpU6xkK-Jv0VT2whlHbApCLxSGzhwhWcVFux-w"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/60" Replay-Nonce: - zCX0kliAkU080IxqGv0beA Date: - Thu, 10 Oct 2019 03:08:15 GMT Content-Length: - '353' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/60", "key": { "kty": "EC", "crv": "P-384", "x": "wOwYPAR79sjeVWXsY0hLEBeYvDam2Undk7ZF8kP3-tUa5y-ZJRjhnx6jXf-wxHpI", "y": "_J_V1o8nTDrrceB6SeVjwtHYyk9xU1x27BxeaSpCSBmvJdgy63R7wUNphswh-fow" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:15 GMT - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:15 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:15 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - xZU2IbAoSub6VCYLIpNiGg Date: - Thu, 10 Oct 2019 03:08:15 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:15 GMT - request: method: post uri: "/my-account/60" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzM4NCIsIm5vbmNlIjoieFpVMkliQW9TdWI2VkNZTElwTmlHZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9teS1hY2NvdW50LzYwIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNjAifQ","payload":"","signature":"aW_inVRhJIr5nLM9jIZ6kRNhPuMGa-UFm9tslXNSBvQNLX9PYQYdzFYUUiJaibmhkSvAY9K-UPO8BLW3fUcSu_bH6uXJcz8xU_H78gCCA8Jt5S_GCGI3SRxM7tk6Npa5"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - 7E9OXm-F9tEelxKaca2cyQ Date: - Thu, 10 Oct 2019 03:08:15 GMT Content-Length: - '353' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/60", "key": { "kty": "EC", "crv": "P-384", "x": "wOwYPAR79sjeVWXsY0hLEBeYvDam2Undk7ZF8kP3-tUa5y-ZJRjhnx6jXf-wxHpI", "y": "_J_V1o8nTDrrceB6SeVjwtHYyk9xU1x27BxeaSpCSBmvJdgy63R7wUNphswh-fow" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:15 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/new_account_agree_terms.yml000066400000000000000000000106431411343312700242430ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:16 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:16 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - yFZPHjvjLZq2aBwFbGoOKw Date: - Thu, 10 Oct 2019 03:08:16 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:16 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoieUZaUEhqdmpMWnEyYUJ3RmJHb09LdyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImUiOiJBUUFCIiwia3R5IjoiUlNBIiwibiI6IjRSeEQ1UnBMT2JjNURRcHp0UlZ3YkNsaWdWWmJnQktoaWx5MFRXbTJpTUZYc0ZRRENlanJ3bHhqLS1nUXQ1UndXX3EyT0FvRVpNMHBHVjN1eWN3SVlsM2VmYVYyMVpjVHA1QVM2OHptdllEQkoxTFhoVGtwdkJxOHEwMmNJd0tuOGxTaExHdUpWTFl1YmMzZ0lyU3Q3ck5jckJzNEh6cThqZ3VRaHF1c2xRWkRBS2tILS02em1Oc0t6M084UU1rYmNqLWx1Z2xEUFcxcU91SlpRUWpoX2U1WXludmtqR3I0cjcxNHdVbjhKcEJfRWl3TG5BMkM3MVM1ZmRCeWN0QjNPcG4zald5ZTJlRGlLZmJqX1JSOEZ0czIzcHQ5QXUtTGtDMVdVdEZ2X3pGaXA4Qkp4WWNjd0ZPSGhWYjl3b2hDWV8yMG9DT3NERkhhcHJWV3p4M0s5dyJ9fQ","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"HYzqegvAYrBt13T11BB832WldifTAONqmZB4xRqoI9xcsMVDDTICqJo8FUJpiSvqn6jKN8yBkW8_OEbiuZKe3Ob1wQ0EGL0O0HX16kHjkS0qkrMVVDfSuxOM5LT4CrpbnqbiU0tAifD9tl2_S98nOAM2Oln6xJAjZt49gJAJCSvmOyei42XnZZjFPVPQOsrusZzliEPNZHokgNxqn4TPmVSImqQykJluV_tZaKOUVYJxzG36twPNMOqz2EjVVxxUmgFmDGIpE8qQf3voRddA2Okb9gdcb6GPRMNH1oQmlDmrq1SzQxXE34uRl1dXWf3oIh4tApTVoGC6FJwqqcfMYQ"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/61" Replay-Nonce: - _ClcKhAQfQ3NUANcKCCKfA Date: - Thu, 10 Oct 2019 03:08:16 GMT Content-Length: - '550' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/61", "key": { "kty": "RSA", "n": "4RxD5RpLObc5DQpztRVwbCligVZbgBKhily0TWm2iMFXsFQDCejrwlxj--gQt5RwW_q2OAoEZM0pGV3uycwIYl3efaV21ZcTp5AS68zmvYDBJ1LXhTkpvBq8q02cIwKn8lShLGuJVLYubc3gIrSt7rNcrBs4Hzq8jguQhquslQZDAKkH--6zmNsKz3O8QMkbcj-luglDPW1qOuJZQQjh_e5YynvkjGr4r714wUn8JpB_EiwLnA2C71S5fdByctB3Opn3jWye2eDiKfbj_RR8Fts23pt9Au-LkC1WUtFv_zFip8BJxYccwFOHhVb9wohCY_20oCOsDFHaprVWzx3K9w", "e": "AQAB" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:16 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/new_account_refuse_terms.yml000066400000000000000000000077221411343312700244550ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:16 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:16 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - fllAWa2hcoxWw_V2i5yY2Q Date: - Thu, 10 Oct 2019 03:08:16 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:16 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiZmxsQVdhMmhjb3hXd19WMmk1eVkyUSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImUiOiJBUUFCIiwia3R5IjoiUlNBIiwibiI6Ind6WG1pbWJ3cElfdFhva2lqNTNpNTlvYVRTTks2QnVPLWt0cDhwLXFBVG1YanBUdUxFRUF6WVFxVVIyUncwZmJ6TG13bk1qazFLVFJ1azZjdllFREhJd1VFdUU4Y2VUaVg5THdnTzBzenpLemNMMGdtZERDZnc1WVFfcjRlenJ0VC0wTmlMdEdkT2JLZEZ1b1VGN0UtUzk4UC1OOW0yZU5CSU1xVDdXQmw1RVRPeFh6OTRjUXhHNy13aFhhWEdlMUdpM3V6SGlxaHVBcTVZd1YyX1JROW0xd2VxUmdpbUV5NGc3NzNOSXpTMTZQOTMxRW04alFLYTRSQVBZWHY5SVVyOC1VMVpydVVTUWk4WGQzZnBNYVhhMnBYREtXWjc5dnM4UDBycVFpMFBCZ0tLaXBRQ1lXZS1pVDljMlh6YUR0WE1MSzVWUEY3dTNDLWowLUlkaXRDUSJ9fQ","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl19","signature":"WmC99gSTvwIILpo7vzgQX6RY15lQrwQ5_GiqLJWkI7yPpnDjFM7RzTg-fdDIdEBKUO_SmZquyq6DeWTGeK5Sv05pa35TzY7RG8KeUVUBn2TtNmvksBvufvzzSZkZtwyiYOpaGS9wtmVyl5K92trzgQKfEbhbmkX1G2C48FErcIPASExxRXGrO7Ow8xKVWqIjNzdIcB_xaNIF6cqoDIaQT0QbtCLcMDum732CWbGtGfyNcbXwzFfu5g9X2qUSCs6YsNa1ScljowKLFAxf-fa8F7ztkUkAUh68LS-oNY2MkXjYHdwtmXZTMlC46nPUz8yoAExlewpeKPrJBWEsY_mY5g"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 403 message: Forbidden headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/problem+json; charset=utf-8 Link: - ;rel="terms-of-service" - <>;rel="index" Replay-Nonce: - s652EIBYhKFgo3BZDe-88w Date: - Thu, 10 Oct 2019 03:08:16 GMT Content-Length: - '150' body: encoding: UTF-8 string: |- { "type": "urn:ietf:params:acme:error:agreementRequired", "detail": "Provided account did not agree to the terms of service", "status": 403 } http_version: recorded_at: Thu, 10 Oct 2019 03:08:16 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/new_order.yml000066400000000000000000000131501411343312700213410ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:20 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:20 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - Oro0Rhbjrz15xEYyE3bWYg Date: - Thu, 10 Oct 2019 03:08:20 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:20 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzM4NCIsIm5vbmNlIjoiT3JvMFJoYmpyejE1eEVZeUUzYldZZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImNydiI6IlAtMzg0Iiwia3R5IjoiRUMiLCJ4IjoiZW1CYXd1bF9lRkFqeXZGZ2ZRU2JlQUpHTTZnbDVFZ2tDQkdHSzk3RjV1c3FSZjZXWmtJLS1KQjgyWXFBNDJDeSIsInkiOiJTb1VaMzVOTnBNVG9XdTJZMWdkVjgwUHJBZ3UxVFRnR2s4eDVTSXZ1WmNUMFl0bllDNkIyVHpmdGg4di1VX2hPIn19","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"ZhYDAXx1fRqjgQhlSqq2vWfE0Tu8GIBx5VED5AgsTny0LFxr0VTTcfV8g7qsavCoGipRRZcrNfCL326kh5mq1XPHzXdG0iNWwtGHRrbMB4XrsaTC4E5js3RMtxF9CKxc"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/69" Replay-Nonce: - fSZVUdObtWiKkOeoBuQDPg Date: - Thu, 10 Oct 2019 03:08:20 GMT Content-Length: - '353' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/69", "key": { "kty": "EC", "crv": "P-384", "x": "emBawul_eFAjyvFgfQSbeAJGM6gl5EgkCBGGK97F5usqRf6WZkI--JB82YqA42Cy", "y": "SoUZ35NNpMToWu2Y1gdV80PrAgu1TTgGk8x5SIvuZcT0YtnYC6B2Tzfth8v-U_hO" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:20 GMT - request: method: post uri: "/order-plz" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzM4NCIsIm5vbmNlIjoiZlNaVlVkT2J0V2lLa09lb0J1UURQZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9vcmRlci1wbHoiLCJraWQiOiJodHRwczovLzE5Mi4xNjguNTYuOTM6MTQwMDAvbXktYWNjb3VudC82OSJ9","payload":"eyJpZGVudGlmaWVycyI6W3sidHlwZSI6ImRucyIsInZhbHVlIjoiZXhhbXBsZS5jb20ifV19","signature":"_Xt5PHogrITBJFl7q8DHi6Mzl3nMr-K43QNQshDVmmcdVp98BF8xQr3XM39RH_hNhze5awagBqVrA50ELUJSW6XG3LBCR5N6fyhsVbWoDnx8rCwfY0F0YqGzTZacSjlA"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-order/6H2x8Bin-qxPnVerW-k4C-2nlYzbW3SWpBlw-o--_Kg" Replay-Nonce: - BoTL51TdVcVh6iD_cLVPNw Date: - Thu, 10 Oct 2019 03:08:20 GMT Content-Length: - '382' body: encoding: UTF-8 string: |- { "status": "pending", "expires": "2019-10-11T03:08:20Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/6H2x8Bin-qxPnVerW-k4C-2nlYzbW3SWpBlw-o--_Kg", "authorizations": [ "/authZ/AnWQqpbBeqh-Vm-5BAEWTRnb3lKyEtfJUxdTllcdGbo" ] } http_version: recorded_at: Thu, 10 Oct 2019 03:08:20 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/nonce_fail.yml000066400000000000000000000066051411343312700214610ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:15 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:15 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - Nr5JbswLJWa8FwbDW5spdg Date: - Thu, 10 Oct 2019 03:08:15 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:15 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIm5vbmNlIjoiTnI1SmJzd0xKV2E4RndiRFc1c3BkZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImNydiI6IlAtMjU2Iiwia3R5IjoiRUMiLCJ4IjoiS0dhMzVHSFBuN1owWkgycjAyUE9ZcVBzVmVoLTlEaW5GSUZVZlNKeUFMRSIsInkiOiJYa2V1MmRXTGo0SmhJakhXMThWSnFIbnBuMjZiWE52SEJYT3FTOG5oTHhNIn19","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl19","signature":"Bpn4xFJAMVIplSaZw6b42B1WD1tieAGNeAqFA1kl9npDkPfUG1vqO86xelHQZsRxrA0T-yWYGRXz2bu3w1gYiw"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 403 message: Forbidden headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/problem+json; charset=utf-8 Link: - ;rel="terms-of-service" - <>;rel="index" Replay-Nonce: - nA9fzQ2E9Chs1lpyLoX-2Q Date: - Thu, 10 Oct 2019 03:08:15 GMT Content-Length: - '150' body: encoding: UTF-8 string: |- { "type": "urn:ietf:params:acme:error:badNonce", "detail": "JWS has an invalid anti-replay nonce: 063ziGbuwwDIznTSUpOaSQ", "status": 400 } http_version: recorded_at: Thu, 10 Oct 2019 03:08:15 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/nonce_retry.yml000066400000000000000000000136301411343312700217070ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:15 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:15 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiaW52YWxpZF9ub25jZSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImUiOiJBUUFCIiwia3R5IjoiUlNBIiwibiI6InluSkVQN2JyQi1sMlRXQUtxSkVOemM4U1NNRnJpTXhKTjRRU05qcF9zeFEtVlZzZmZkbXRFNk1aNDdEVmI5cEo3c0ZoN1p0bmNkckdhX3BheWdmci00aUg5MGRCeUpNeDhBWTJDUmxQZHFlR3ozLXNEc2ItOU5OQWkySnhPaXl5RUxtUXk2aHNXcWVhdkJfSnpsRlk4YTJMbFRzM1NOQml5amVBOVhwWnlGR0dFNzNoNkFnNFRfOHZzWWRINFpTaWVMVVhPMC1FWnNTdnA2aXhUN0VjVTVLUlJpWUhGNGVzZk9zTm1ja0Rna3VhcEh3S2hua1Q1VmlKY1k1clVZVF9kZHZ0M2NZZktGeDNxRFcteUdGUHVFcVlHZHlmaUllTWJOdURPUGdfdVNlOWN4aFJvWnRtS1lDYUJtaDFZLXRXNG5vX1M3ektvYmJNQnU2NHpwYjNLdyJ9fQ","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"tp6zGSHndIi8tqYSy_IgI9xzs_y1wTsWdpBrtlk7vqSt8ZUX16VsTtev7hwoykOSM26Tj-M1yiTX5M_dGQET4F6HNaq3J9V8JE-rUT7go_ybf-q7JE33W1OTU7JvCayRaYSvxG9sPDthtrUFQnOqGja2EzNYRPcFpXVEHnMil71oaAxYGpBi1BSeHL4yM1b3JRW28LUHhtm4fS4E32o9GL891y6MinO7yVbwwnS_EW12kP61kV_qcOWgLF_EIaCzhrs-_3rflEXTT1b1Dta0FdIA6oyi0j_GBc5SFL1eGAnJmgsj9y7t_34Unva4ZUZwQwLepA9RIHRTOBUtwcAeYQ"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 400 message: Bad Request headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/problem+json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - X2B9trMSP5OkXY_arjvAGw Date: - Thu, 10 Oct 2019 03:08:15 GMT Content-Length: - '138' body: encoding: UTF-8 string: |- { "type": "urn:ietf:params:acme:error:badNonce", "detail": "JWS has an invalid anti-replay nonce: invalid_nonce", "status": 400 } http_version: recorded_at: Thu, 10 Oct 2019 03:08:15 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiWDJCOXRyTVNQNU9rWFlfYXJqdkFHdyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImUiOiJBUUFCIiwia3R5IjoiUlNBIiwibiI6InluSkVQN2JyQi1sMlRXQUtxSkVOemM4U1NNRnJpTXhKTjRRU05qcF9zeFEtVlZzZmZkbXRFNk1aNDdEVmI5cEo3c0ZoN1p0bmNkckdhX3BheWdmci00aUg5MGRCeUpNeDhBWTJDUmxQZHFlR3ozLXNEc2ItOU5OQWkySnhPaXl5RUxtUXk2aHNXcWVhdkJfSnpsRlk4YTJMbFRzM1NOQml5amVBOVhwWnlGR0dFNzNoNkFnNFRfOHZzWWRINFpTaWVMVVhPMC1FWnNTdnA2aXhUN0VjVTVLUlJpWUhGNGVzZk9zTm1ja0Rna3VhcEh3S2hua1Q1VmlKY1k1clVZVF9kZHZ0M2NZZktGeDNxRFcteUdGUHVFcVlHZHlmaUllTWJOdURPUGdfdVNlOWN4aFJvWnRtS1lDYUJtaDFZLXRXNG5vX1M3ektvYmJNQnU2NHpwYjNLdyJ9fQ","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"feFWQErflM26yux443Mb0WAzP1_meo-SpdwGiXsQ35D8nFAZo6LcjowluK7vDwKpSJkPxb7Pgy3fEKqr4CvZ70G8HFAUbYaT2PkrTw1jIBxJCcK2O6iQ-e4ZmEAR0gz1HNb-QI9KEO3lrBbNvZtoswZXv4yA2vzvSwugXZKB8jTfNMUJjAMLs0WCBqoRgSfNeVGd9Hty0CDknK97jm4tYmxStYYpXZQ9pYSEq5uWAFCjvjdQ1yiQPdEV8YjSTN6agYVx670kgt1TVZIORhGwOOwQwWXK5-BhI6h24uFAzKHWCLBYWj54Fjod-DsrS1Z9-dTZN5IBodE9Lz4l9suOXg"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/56" Replay-Nonce: - IKA3e6VXcs73cg6wwe4q0w Date: - Thu, 10 Oct 2019 03:08:15 GMT Content-Length: - '550' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/56", "key": { "kty": "RSA", "n": "ynJEP7brB-l2TWAKqJENzc8SSMFriMxJN4QSNjp_sxQ-VVsffdmtE6MZ47DVb9pJ7sFh7ZtncdrGa_paygfr-4iH90dByJMx8AY2CRlPdqeGz3-sDsb-9NNAi2JxOiyyELmQy6hsWqeavB_JzlFY8a2LlTs3SNBiyjeA9XpZyFGGE73h6Ag4T_8vsYdH4ZSieLUXO0-EZsSvp6ixT7EcU5KRRiYHF4esfOsNmckDgkuapHwKhnkT5ViJcY5rUYT_ddvt3cYfKFx3qDW-yGFPuEqYGdyfiIeMbNuDOPg_uSe9cxhRoZtmKYCaBmh1Y-tW4no_S7zKobbMBu64zpb3Kw", "e": "AQAB" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:15 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/order_authorizations.yml000066400000000000000000000220451411343312700236360ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:14 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:14 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - mZhTCXL5rSW6dymZSqdHAA Date: - Thu, 10 Oct 2019 03:08:14 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:14 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoibVpoVENYTDVyU1c2ZHltWlNxZEhBQSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImUiOiJBUUFCIiwia3R5IjoiUlNBIiwibiI6IjM0Vm1EVWZCcDNEeTdHY0xQaEdXRFNwaTU3SWFZZjFIckpsMlVJSThYTWNiQ180MUdYUkhZUU5wNTVzQ3JGSFB0X3VjMVU3ZEhfTDBmejk3dnRSd0U4dDU5X2xFUEJJUVZ4NElqM2pGX1RRdWdrUGFRcHlKN3UteTl4YjVkWTk1NmZyNjBPQ1ZfdGpsYkFfNl9TRDF5X2V0TzRnN0twa0VPSkVwc3A4ZXFZdG5MU2Z4LVFEN2VyT1dSTm9BQ3RJZExnc0JTdDUwNGJ1ZF82RzhhRElQMV8xbENZcmpmYkNjVXVPd2t5UVlSWkRvTHEtOUNMQ3NuUHo1TmtIQmVzaGhPZENTQmw5NTkwMmZrazVLVDdlQ3NRNDY1Z3ZiV3d1Zno5ZEdqV3p0dXNHN0pjeGhPU0NsMHJDNkhTOUQ2QXlQbEY5NVpIcVJoY2RvZWZRNTJ3THV4USJ9fQ","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"31Aoa8SK76XalC1zGq1dRBxFcmTbYRVtShsN1r_dzc4oy3CgEQV0loX91CuZNnpDMob0bd9R5BZ8hOkvciY0rELF1m07-yDQ-hmHMapMMiQ3HBZY0YVztV0kCJbveFWl_C0cyEqxQ9uiQeNbq_BeVRocjbz9unn1VJP-1T6Nt6_tJRAsE3JfxDfSMJLxG6DJxHyauBesNrY-vYWBR7rNdw59FzvenSI8E4te2nV6PAZL6e-x02WXdFyo05qlS9Ut-CX8r2MSc2jEBD0xakQCPI-DX4VDpvWFBRCd_8OwpODonY28NBuuAUS07Hna8l5uOH6DcRy5HPjflme2hjPaZw"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/54" Replay-Nonce: - q0Q_Ge_VjL7ECEF33zhivA Date: - Thu, 10 Oct 2019 03:08:14 GMT Content-Length: - '550' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/54", "key": { "kty": "RSA", "n": "34VmDUfBp3Dy7GcLPhGWDSpi57IaYf1HrJl2UII8XMcbC_41GXRHYQNp55sCrFHPt_uc1U7dH_L0fz97vtRwE8t59_lEPBIQVx4Ij3jF_TQugkPaQpyJ7u-y9xb5dY956fr60OCV_tjlbA_6_SD1y_etO4g7KpkEOJEpsp8eqYtnLSfx-QD7erOWRNoACtIdLgsBSt504bud_6G8aDIP1_1lCYrjfbCcUuOwkyQYRZDoLq-9CLCsnPz5NkHBeshhOdCSBl95902fkk5KT7eCsQ465gvbWwufz9dGjWztusG7JcxhOSCl0rC6HS9D6AyPlF95ZHqRhcdoefQ52wLuxQ", "e": "AQAB" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:14 GMT - request: method: post uri: "/order-plz" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoicTBRX0dlX1ZqTDdFQ0VGMzN6aGl2QSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9vcmRlci1wbHoiLCJraWQiOiJodHRwczovLzE5Mi4xNjguNTYuOTM6MTQwMDAvbXktYWNjb3VudC81NCJ9","payload":"eyJpZGVudGlmaWVycyI6W3sidHlwZSI6ImRucyIsInZhbHVlIjoiZXhhbXBsZS5jb20ifV19","signature":"I4VidBAochvPBnMZQOyu2d5_Yr48ZW15Le5fOKTDe_rVD08VODd9WYTyx2aR2nZ1ccOprYG8LHJGHnAlrIb5eCsKuwkaLlPXaSUmuKb2rtohqEXGg9e-jmJrTQtKLXIHwk25fTx9vYy0rh2f24X42UeB4rhEFF0niOqaXTq-SNvNPYfmtt98hBSfMhTNTH9Pq77lWvInciNIZXrSAFNjcGo6emHsNcMCslfr0URb1Vwojm5C5LpgYEjdhravjvj1FBgRaWBTI36_WWaJWyRizL-Mt4_VTw3XhdtrN4LKuXDy2pOBLS67yPQkzxSn3S0KFQLhESOByxKlb9JtSDJihQ"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-order/qqhqH4Oxd9lgv8Lir9fwngfcl_5K9aUz2wXv9a6IJm4" Replay-Nonce: - GohgOlvKXnpPUjwt1xwYEg Date: - Thu, 10 Oct 2019 03:08:14 GMT Content-Length: - '382' body: encoding: UTF-8 string: |- { "status": "pending", "expires": "2019-10-11T03:08:14Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/qqhqH4Oxd9lgv8Lir9fwngfcl_5K9aUz2wXv9a6IJm4", "authorizations": [ "/authZ/FEYgHj9-jWaETKuBx2yOmPuuVOewz3ihBl4jgqt9Zpw" ] } http_version: recorded_at: Thu, 10 Oct 2019 03:08:14 GMT - request: method: post uri: "/authZ/FEYgHj9-jWaETKuBx2yOmPuuVOewz3ihBl4jgqt9Zpw" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiR29oZ09sdktYbnBQVWp3dDF4d1lFZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9hdXRoWi9GRVlnSGo5LWpXYUVUS3VCeDJ5T21QdXVWT2V3ejNpaEJsNGpncXQ5WnB3Iiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNTQifQ","payload":"","signature":"kJ-xRuaw3pkwBeYscuebNyHXhXfeOhQYw_ckEIpz99CTRFMhainIgOGfbcu7p-WeLZTfzjER_tVIk6oiUvOiI9gze5K8odJ9FpP01mViELOyhoZthM-jkCdpM9pccEEc7XSKv1obao5ixp2-7gDMoVJKyBeGO30acrnCwI3yl2jYrteWgywRNO3xWRQfSiGyj_z5Cqu47K5zBaH_gUDIZgTh93Uj0C8MSYOmYR_dxTmvGuB4HsTmsD_C5kOUD27QaeojPiTqMcpamlLp8PTB-yFXrFCobAU0c2LDp-GrNOIc22en7cUYcxPWHgLSR2tlOaRQC-k7wezG5xpt5PRR3Q"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - ljVZHoAS1Qj2t72VClVLLQ Date: - Thu, 10 Oct 2019 03:08:14 GMT Content-Length: - '874' body: encoding: UTF-8 string: |- { "status": "pending", "identifier": { "type": "dns", "value": "example.com" }, "challenges": [ { "type": "http-01", "url": "/chalZ/S4LV-WpJAr_5mmLBn4rtQdoFzKp4SgLINsq0M1T2m7U", "token": "mvKMLyiZmfwIZqt3oWyD4u-LnObSrnhqzOi0sa4KTbY", "status": "pending" }, { "type": "tls-alpn-01", "url": "/chalZ/QbGcd4s2SprlUoEIt_Xw2PHtw78aELvpcdtgAlKwPEk", "token": "9Vg_L4DQ9qEFkcyLRXXwopoFDLkO10iDZI0JhK2HGJU", "status": "pending" }, { "type": "dns-01", "url": "/chalZ/gl1_jbOYJVOxnY2z3CMXLknc7r8QtntQLJLyToIQQnw", "token": "ZYyzndctKmISfYGlMTgE7GOdK6mi5Zh9NJM0jc4N8SA", "status": "pending" } ], "expires": "2019-10-10T04:08:14Z" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:14 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/order_certificate_download_fail.yml000066400000000000000000000147431411343312700257250ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:11 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:11 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - IY6aQ3HI_w0wWQfW_25iog Date: - Thu, 10 Oct 2019 03:08:11 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:11 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiSVk2YVEzSElfdzB3V1FmV18yNWlvZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImUiOiJBUUFCIiwia3R5IjoiUlNBIiwibiI6InpoT0F1eUZJdDNkWFVETi1tU1BQQWhxcjdmLU1JMnpORmtDRzgzSDhsaU13MFhOelVQaW9HOVlySm1HRF9GYy1CcHd4M25yRjlmOWZWaWlRUnp6SlZGNEYybVd4TEx2RGU2UlVNRmVqVktzcXU4M2lpUk55TmZhXzBvcTUybHFtQjZIU0g0bEtQLWRIc0doOEtIOTFKMFdLYUtGeTNWQi1DSTlFZmtrZl9sNS11eFRrdGQ4Rjhjby1LRXpnLUp4YUJfQlZSa0FMQU5TNTVPRzN5b3hzLThfdEFaeDBuYXlYSXJpZ1IzSUNzVTFKWG5IVnRvT3lWZHpLNlluaTkyQzY5b1VvdTdtcUtoWlJtMk1OaXhPb1ZWZ01IbWFIYUNuWUQ4ejBlVGJuTHRIak5IaVNsSlk3YzlMNXI5QUJHZi1GemlRa2hPVWVTUDF6M0l3UmNQN3A2USJ9fQ","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"oFydbJkpA4pTvrCflffk6djUj-_p0D64-HlPX6UtdzfF4kiIOPlzm-s-4RQlEdqq7xb9D3WhdYxmePcVrvu8ktQ-laRE67f6egLQ_vZNdFsYXyOMYpwu-vdo0f7BIHCBYIEFPoE47myhva-kIarQEFwKXrM0sNQkulF99UNhKbbwDWd-ec5rpArm6KajbthZcG80DTuqgP-x1TmANlT4ukWLEReuvbHYQpRcyxXGWPb66xg_9MoHwPRdkKwDAam4n4qMZLOVe9c-DmmubBpNeTsqBfWZfa4rZTiTG3cfW3zVOchney9Q_1nOQ7t8QodpizQIs4aSWsABpjzh5nvwcg"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/49" Replay-Nonce: - olgUCT19BcyB-N9AhU06Pg Date: - Thu, 10 Oct 2019 03:08:12 GMT Content-Length: - '550' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/49", "key": { "kty": "RSA", "n": "zhOAuyFIt3dXUDN-mSPPAhqr7f-MI2zNFkCG83H8liMw0XNzUPioG9YrJmGD_Fc-Bpwx3nrF9f9fViiQRzzJVF4F2mWxLLvDe6RUMFejVKsqu83iiRNyNfa_0oq52lqmB6HSH4lKP-dHsGh8KH91J0WKaKFy3VB-CI9Efkkf_l5-uxTktd8F8co-KEzg-JxaB_BVRkALANS55OG3yoxs-8_tAZx0nayXIrigR3ICsU1JXnHVtoOyVdzK6Yni92C69oUou7mqKhZRm2MNixOoVVgMHmaHaCnYD8z0eTbnLtHjNHiSlJY7c9L5r9ABGf-FziQkhOUeSP1z3IwRcP7p6Q", "e": "AQAB" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:12 GMT - request: method: post uri: "/order-plz" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoib2xnVUNUMTlCY3lCLU45QWhVMDZQZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9vcmRlci1wbHoiLCJraWQiOiJodHRwczovLzE5Mi4xNjguNTYuOTM6MTQwMDAvbXktYWNjb3VudC80OSJ9","payload":"eyJpZGVudGlmaWVycyI6W3sidHlwZSI6ImRucyIsInZhbHVlIjoiZXhhbXBsZS5jb20ifV19","signature":"qeUAzjDdaQ6xi6s-0AziJX3ofrpcS73wpX0skKzASiKgA8X5ghEyUgdauDW5rJY-7ApAZg11TyGud_eInlGzuhJwt4zCFSnJn10-14crfZ3DB27JpSCvT2HgEaWAuUnZypbNpybHh4cR7LsPS7H-RynaSCmxtaGFOsbzs43pu1_Y2hGY0Oc6j66qMtgD2jgcO-N34UU2iqVvfRJAsbrSIf4dB7CJDo1rLZYGgRv1NelSOUkpeZ18oeMNyoWdAwR_XRIKjmlhr8weOlzVorhpOLOBqCEXeCq-qstzWRrgfoA3WWZEs9Bny0YKbzMpbRFkRNm2k3pmE_dCONbpjwGHzQ"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-order/XojARKX5NhF7DEEikmTCSu_9DUOUwQslNkSBZ6ziOic" Replay-Nonce: - fAmGEaMoBNwP3lyXEUAWeg Date: - Thu, 10 Oct 2019 03:08:12 GMT Content-Length: - '382' body: encoding: UTF-8 string: |- { "status": "pending", "expires": "2019-10-11T03:08:12Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/XojARKX5NhF7DEEikmTCSu_9DUOUwQslNkSBZ6ziOic", "authorizations": [ "/authZ/KZs2V-vGigo8huJ_tGXFn0GFzgKMi-T_diKGttOXx5c" ] } http_version: recorded_at: Thu, 10 Oct 2019 03:08:12 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/order_certificate_download_preferred_chain.yml000066400000000000000000000541221411343312700301250ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.6 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Sat, 12 Sep 2020 17:42:58 GMT Content-Length: - '396' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "externalAccountRequired": false, "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Sat, 12 Sep 2020 17:42:58 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.6 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - KRW0UyiHYgPswl3QjrsF9Q Date: - Sat, 12 Sep 2020 17:42:58 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Sat, 12 Sep 2020 17:42:58 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIm5vbmNlIjoiS1JXMFV5aUhZZ1Bzd2wzUWpyc0Y5USIsInVybCI6Imh0dHBzOi8vMC4wLjAuMDoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImNydiI6IlAtMjU2Iiwia3R5IjoiRUMiLCJ4IjoiS0pSc3BkWWk5RGxiZC1RNlI0ekNTOVNSVmNhSHY5a1Q5Y0hsbm5EMnZVdyIsInkiOiJOS2JFSkF4LTR0THFDdzdnZHZna3Z1c2p5WlhsNkVQWGQyQnhpam5pc3FVIn19","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"pXr-n-I4yrgY9zckBDZiBvPMJwvJi54ABWN70RFyisYpiCUQPULlG6eSyHUIUpOJukXJdCjxBr-eBd5pmqGuXA"}' headers: User-Agent: - Acme::Client v2.0.6 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/6" Replay-Nonce: - Xzee7r92KRN4mBBAai0Smg Date: - Sat, 12 Sep 2020 17:42:58 GMT Content-Length: - '304' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/6", "key": { "kty": "EC", "crv": "P-256", "x": "KJRspdYi9Dlbd-Q6R4zCS9SRVcaHv9kT9cHlnnD2vUw", "y": "NKbEJAx-4tLqCw7gdvgkvusjyZXl6EPXd2BxijnisqU" } } http_version: recorded_at: Sat, 12 Sep 2020 17:42:58 GMT - request: method: post uri: "/order-plz" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIm5vbmNlIjoiWHplZTdyOTJLUk40bUJCQWFpMFNtZyIsInVybCI6Imh0dHBzOi8vMC4wLjAuMDoxNDAwMC9vcmRlci1wbHoiLCJraWQiOiJodHRwczovLzAuMC4wLjA6MTQwMDAvbXktYWNjb3VudC82In0","payload":"eyJpZGVudGlmaWVycyI6W3sidHlwZSI6ImRucyIsInZhbHVlIjoiZXhhbXBsZS5jb20ifV19","signature":"9bMHCdzVKSXY9PYdqXhYcn-AsiJTrsD5IJdJ9e_gKbVlRDrQ0lmYplOtYwyQ_1pBJQ2MrXo1gsytJ7MGp71gTQ"}' headers: User-Agent: - Acme::Client v2.0.6 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-order/G0gA0QBqAXVxYCXkEl5DWsfoxMiU_Gfro2ynIUMT4NM" Replay-Nonce: - "-hu2koDUfxXlEpuLYzoyXQ" Date: - Sat, 12 Sep 2020 17:42:58 GMT Content-Length: - '370' body: encoding: UTF-8 string: |- { "status": "pending", "expires": "2020-09-13T17:42:58Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/G0gA0QBqAXVxYCXkEl5DWsfoxMiU_Gfro2ynIUMT4NM", "authorizations": [ "/authZ/ZSeU-0s3dvj1yPcRP7fuMLGXrdAW6LOLDn1vlXd-F8g" ] } http_version: recorded_at: Sat, 12 Sep 2020 17:42:58 GMT - request: method: post uri: "/authZ/ZSeU-0s3dvj1yPcRP7fuMLGXrdAW6LOLDn1vlXd-F8g" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIm5vbmNlIjoiLWh1MmtvRFVmeFhsRXB1TFl6b3lYUSIsInVybCI6Imh0dHBzOi8vMC4wLjAuMDoxNDAwMC9hdXRoWi9aU2VVLTBzM2R2ajF5UGNSUDdmdU1MR1hyZEFXNkxPTERuMXZsWGQtRjhnIiwia2lkIjoiaHR0cHM6Ly8wLjAuMC4wOjE0MDAwL215LWFjY291bnQvNiJ9","payload":"","signature":"iJmBSqqxqQsVfuFCZSyuLriFliKZbHpNJ0O8ApAImfKHx8ePEwIu9gbxYQaJDvHOfGJXWhpm6mlQGFV00oFWTw"}' headers: User-Agent: - Acme::Client v2.0.6 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - _C_smvfMxgmtClYJo-WZ7Q Date: - Sat, 12 Sep 2020 17:42:58 GMT Content-Length: - '856' body: encoding: UTF-8 string: |- { "status": "pending", "identifier": { "type": "dns", "value": "example.com" }, "challenges": [ { "type": "tls-alpn-01", "url": "/chalZ/BGxDWWmrd-pqjq5sFJqkMWrwrLYcnKkO_H2MK1bEOWo", "token": "Ah6g3LFOuRsXOnmqWvUA25Qefs3fQQOGiGJgVVnw4F0", "status": "pending" }, { "type": "http-01", "url": "/chalZ/UjpMC-g6QhU2R5J7Pp7Zc5eNxMZl_LM4YaReBKalYBE", "token": "6bENpIdLyo4ilUo554q0ZbGuqwQ3YcUZoAZxAf70e-c", "status": "pending" }, { "type": "dns-01", "url": "/chalZ/vI3_joXk9GmuQXajwiicRa8NhxM66RdvxlTET3Nezbo", "token": "XgiqVUfq1SmP13-Ja2aPwXJGL0E4F6T4hRw7iT4uls8", "status": "pending" } ], "expires": "2020-09-12T18:42:58Z" } http_version: recorded_at: Sat, 12 Sep 2020 17:42:58 GMT - request: method: post uri: "/chalZ/UjpMC-g6QhU2R5J7Pp7Zc5eNxMZl_LM4YaReBKalYBE" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIm5vbmNlIjoiX0Nfc212Zk14Z210Q2xZSm8tV1o3USIsInVybCI6Imh0dHBzOi8vMC4wLjAuMDoxNDAwMC9jaGFsWi9VanBNQy1nNlFoVTJSNUo3UHA3WmM1ZU54TVpsX0xNNFlhUmVCS2FsWUJFIiwia2lkIjoiaHR0cHM6Ly8wLjAuMC4wOjE0MDAwL215LWFjY291bnQvNiJ9","payload":"e30","signature":"HcqMmGDobsHtS6t4Qq80bMJXyz5HUefLomyjwL3JGLVmToUSEljREiDKIrhvIU8tl-RqtlG2j-WVjtON6dxSIQ"}' headers: User-Agent: - Acme::Client v2.0.6 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - </authZ/ZSeU-0s3dvj1yPcRP7fuMLGXrdAW6LOLDn1vlXd-F8g>;rel="up" - <>;rel="index" Replay-Nonce: - 0lfJaNwx4PYgtGnVTNSurw Date: - Sat, 12 Sep 2020 17:42:58 GMT Content-Length: - '192' body: encoding: UTF-8 string: |- { "type": "http-01", "url": "/chalZ/UjpMC-g6QhU2R5J7Pp7Zc5eNxMZl_LM4YaReBKalYBE", "token": "6bENpIdLyo4ilUo554q0ZbGuqwQ3YcUZoAZxAf70e-c", "status": "pending" } http_version: recorded_at: Sat, 12 Sep 2020 17:42:58 GMT - request: method: post uri: "/finalize-order/G0gA0QBqAXVxYCXkEl5DWsfoxMiU_Gfro2ynIUMT4NM" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIm5vbmNlIjoiMGxmSmFOd3g0UFlndEduVlROU3VydyIsInVybCI6Imh0dHBzOi8vMC4wLjAuMDoxNDAwMC9maW5hbGl6ZS1vcmRlci9HMGdBMFFCcUFYVnhZQ1hrRWw1RFdzZm94TWlVX0dmcm8yeW5JVU1UNE5NIiwia2lkIjoiaHR0cHM6Ly8wLjAuMC4wOjE0MDAwL215LWFjY291bnQvNiJ9","payload":"eyJjc3IiOiJNSUlDaERDQ0FXd0NBUUl3RmpFVU1CSUdBMVVFQXd3TFpYaGhiWEJzWlM1amIyMHdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFDeGtFTG9iUFdMZzNSalRUTlNZbGxHU1c4X1hqbVA2eFZPS0JJTVFwNHVOVGpiS1FzQVVpMHJOM3R0dUYyT3NDbDl0d1VmRWYwbG5ZaVlhdkYxazJIMGlpb3hLRE92cWdGZnBicEVnTjZuYXNDV3FENWs3cVZRWTZtMTF2eHFWWVlqVFRhelVXMVhZSW5aaUFLaGYxQjZ1MUF2RGE5X0pDSkVjQ193VDRrVmpnZTBBeDZ3MWJ2eV9wUmFpcHA4R2t1N0ZTU1Z5dXFXZXJDRWlCb0ZXSm1aN1pLYUw3ZC1nUUo2d200bmJkZkdoWXhWZDFTa2F2ekt2WVJOZ3E0SDR4dGEzNm9ZNWdOY2F1ajZkZkZjU1U0bkhPT2otUkVRWkVEdTJSR0lXOWlUNjlFb3FNQTVHM0RqOE9JamlDLWxmVUpPNURiZmxKTUhxRFlhNWJUdC1qaFhBZ01CQUFHZ0tUQW5CZ2txaGtpRzl3MEJDUTR4R2pBWU1CWUdBMVVkRVFRUE1BMkNDMlY0WVcxd2JHVXVZMjl0TUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFCNmZubVFqMjlZaF9IVm5UTnN5S1pCOW9SWWhwcnFzaFFaQkY2OVB1SWtQN1VVYmEzVlhPb3YtOWxfSTNqeGJ3cGh1WlFpSnVpSjZuclVEYXIwb2VOaWJtUDRGS2t3T1hEWGZWTkFYWEF0N3NvUFgzZHRqSEZvR0JHVHg3U21oWWRmWHg0T1hiYU5GSDVGeUNEMC1aVFY3dGEwZmo5cjFMRUlpMEdBS18zb0R2alVlYk1CcEVDQ3pMaHotSUlVS3hnT2dZWlE0RURCSVFiUVVoZzVfLWNsN08zNEthOW83Q1hvc2Jrc3N1QmxWYmpRRVkzaEpGQllGcEVVX0hSazB2NHlGY3FVRVZsT2doTTQ3S3dSdVYySnY2ZHItQVF2VVJHMUxuYk51bHdXNk00SWFFNE9HbHB5N2tMOVAzUG10ODcyT1RtdGVXVmhwTEc2aFg0TEx3Z0YifQ","signature":"26EAgXh5RVtb4G-JpRh5m6tE99JNRqJg7dnw2u9qcU3X00aCo_6uLaYkH6c8c2LP2vtNZ9W-3M13jzK8AmzjzQ"}' headers: User-Agent: - Acme::Client v2.0.6 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-order/G0gA0QBqAXVxYCXkEl5DWsfoxMiU_Gfro2ynIUMT4NM" Replay-Nonce: - 4DYyeBRbxk2kBPrcNZJKJw Date: - Sat, 12 Sep 2020 17:42:59 GMT Content-Length: - '373' body: encoding: UTF-8 string: |- { "status": "processing", "expires": "2020-09-13T17:42:58Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/G0gA0QBqAXVxYCXkEl5DWsfoxMiU_Gfro2ynIUMT4NM", "authorizations": [ "/authZ/ZSeU-0s3dvj1yPcRP7fuMLGXrdAW6LOLDn1vlXd-F8g" ] } http_version: recorded_at: Sat, 12 Sep 2020 17:42:59 GMT - request: method: post uri: "/my-order/G0gA0QBqAXVxYCXkEl5DWsfoxMiU_Gfro2ynIUMT4NM" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIm5vbmNlIjoiNERZeWVCUmJ4azJrQlByY05aSktKdyIsInVybCI6Imh0dHBzOi8vMC4wLjAuMDoxNDAwMC9teS1vcmRlci9HMGdBMFFCcUFYVnhZQ1hrRWw1RFdzZm94TWlVX0dmcm8yeW5JVU1UNE5NIiwia2lkIjoiaHR0cHM6Ly8wLjAuMC4wOjE0MDAwL215LWFjY291bnQvNiJ9","payload":"","signature":"qUmNckOq-kxTw0smfxE1EzXIWngMkY2972bBVztMHjTI4_HnnZIo8yZWZgAfeVqAzwYVQ6WqGMqRgfzSQQy_eQ"}' headers: User-Agent: - Acme::Client v2.0.6 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - ByQHhZTYcCzhscHd3PMMkw Date: - Sat, 12 Sep 2020 17:42:59 GMT Content-Length: - '434' body: encoding: UTF-8 string: |- { "status": "valid", "expires": "2020-09-13T17:42:58Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/G0gA0QBqAXVxYCXkEl5DWsfoxMiU_Gfro2ynIUMT4NM", "authorizations": [ "/authZ/ZSeU-0s3dvj1yPcRP7fuMLGXrdAW6LOLDn1vlXd-F8g" ], "certificate": "/certZ/1429431d2a4fefd3" } http_version: recorded_at: Sat, 12 Sep 2020 17:42:59 GMT - request: method: post uri: "/certZ/1429431d2a4fefd3" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIm5vbmNlIjoiQnlRSGhaVFljQ3poc2NIZDNQTU1rdyIsInVybCI6Imh0dHBzOi8vMC4wLjAuMDoxNDAwMC9jZXJ0Wi8xNDI5NDMxZDJhNGZlZmQzIiwia2lkIjoiaHR0cHM6Ly8wLjAuMC4wOjE0MDAwL215LWFjY291bnQvNiJ9","payload":"","signature":"o-1Vcb4Jl6AdTpNjiBM6PNqVbz-FFOi5-2skvpJ-uzlsYNYQaJXiRnC-TNHStkWQ6g3AIKV2m9R0VYLrrhufDg"}' headers: User-Agent: - Acme::Client v2.0.6 (https://github.com/unixcharles/acme-client) Accept: - application/pem-certificate-chain Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/pem-certificate-chain; charset=utf-8 Link: - </certZ/1429431d2a4fefd3/alternate/1>;rel="alternate" - <>;rel="index" Replay-Nonce: - 7WYRvRPzJmNztiZPQFedyg Date: - Sat, 12 Sep 2020 17:42:59 GMT Transfer-Encoding: - chunked body: encoding: UTF-8 string: | -----BEGIN CERTIFICATE----- MIIDWTCCAkGgAwIBAgIIFClDHSpP79MwDQYJKoZIhvcNAQELBQAwKDEmMCQGA1UE AxMdUGViYmxlIEludGVybWVkaWF0ZSBDQSA3YzEzZWQwHhcNMjAwOTEyMTc0MjU5 WhcNMjUwOTEyMTc0MjU5WjAWMRQwEgYDVQQDEwtleGFtcGxlLmNvbTCCASIwDQYJ KoZIhvcNAQEBBQADggEPADCCAQoCggEBALGQQuhs9YuDdGNNM1JiWUZJbz9eOY/r FU4oEgxCni41ONspCwBSLSs3e224XY6wKX23BR8R/SWdiJhq8XWTYfSKKjEoM6+q AV+lukSA3qdqwJaoPmTupVBjqbXW/GpVhiNNNrNRbVdgidmIAqF/UHq7UC8Nr38k IkRwL/BPiRWOB7QDHrDVu/L+lFqKmnwaS7sVJJXK6pZ6sISIGgVYmZntkpovt36B AnrCbidt18aFjFV3VKRq/Mq9hE2CrgfjG1rfqhjmA1xq6Pp18VxJTicc46P5ERBk QO7ZEYhb2JPr0SiowDkbcOPw4iOIL6V9Qk7kNt+UkweoNhrltO36OFcCAwEAAaOB mDCBlTAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUF BwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFGDX1vS08T9ANMeTFQqLEZpCwlWM MB8GA1UdIwQYMBaAFGnRgEZnF6ZdOw0D2IttAHN/g/+4MBYGA1UdEQQPMA2CC2V4 YW1wbGUuY29tMA0GCSqGSIb3DQEBCwUAA4IBAQA+G4V0jwP0NbSGyDM7n64IxYZ1 ImfukafTdvjhim+sA6pnHt6IkWDDr45uP2lvPP3eg61UZgYiuqzWV/CDeZRMK6Pa 8Sryg2nbpD2ojqNN9k4Y47I0nHtrsIL5noS39c7vcX596HMGW5Qqp5X6Gx5wzY+Z rwkin3jkgBpoT7eCagGy1m0dffJsN/8Mk9ZLR4o1rlJvzqXCQf6IZo00GqmHQhWh e1BpdDUz/42TVNgS3voyuTagAB7pj2fEThP0e86CUJ1bP7p0VwvwwSeXmJOcEt1q bfiWti053Nv7Lz7tmYkxqkT4Ucn1UwEGIkeiDDhnZvTn2XUcjFgpSPZ2TJWk -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDUDCCAjigAwIBAgIIeEmZ+cfJIIswDQYJKoZIhvcNAQELBQAwIDEeMBwGA1UE AxMVUGViYmxlIFJvb3QgQ0EgNjBjZWM0MCAXDTIwMDkxMjE3MjQ0M1oYDzIwNTAw OTEyMTcyNDQzWjAoMSYwJAYDVQQDEx1QZWJibGUgSW50ZXJtZWRpYXRlIENBIDdj MTNlZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOD3cZac4SO+SVA7 YT37naFSRImuyZVpwrHwmPof0h9AYJM1yctchYZ/ncQ7r3/rhmWi3oDh7zrP4dS5 Sdp8KB+WcF2QdP7XkK8nuq1wjTZCOhqPv+0ccX0AwoUZOfzmODPBasqdlW82QlPJ ITc4aFzSE8wcE222BKq8FRojza1uZWf1FyoPyBHNkubSfLRPENa5LSsQ/NJZR3mU jPZUBaTlegsWVShPfi9m2RQQVyE/+dtjfvWVyxvdeOpy5vSwFqU6o0z+uq0hy7B0 4sU9Trwl4e+JmCDMFBs1obfaSLi3DvZEJiRPajQIVK1lfB5IumUtz7OBx0fapF/d EpxuBOsCAwEAAaOBgzCBgDAOBgNVHQ8BAf8EBAMCAoQwHQYDVR0lBBYwFAYIKwYB BQUHAwEGCCsGAQUFBwMCMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFGnRgEZn F6ZdOw0D2IttAHN/g/+4MB8GA1UdIwQYMBaAFGqsx6g+EhRnknk3uKHNnXyG8PzV MA0GCSqGSIb3DQEBCwUAA4IBAQBKNHm2WbIhd93fZqC64H34LvTdXwftFmPtQeIB 9j0jByJAowJoOPHzQuVjKpgAxWRwmD8ETq0Ahk9LduBzD9J+gXopxM6vdvV0l2up IFVG2s3oOwOtiziE5X/+bEl3K5n0nWQS9lHQ91+L9NEXFH1QhqbQDifZTIXhjFS9 4LQ6GRNoBK/XiqcE8zp3FkSriiVwACKWSH6O+dhq0uz+Mr+ce6pgPaVRBycDhNNA Ucx2SZSXqeVkp0AF5I7J1/DGOeRYIzc0a9z6+OT32xrtFsnC/0TuxDT0RdSdKPsQ nFAMSqkGIzVVUX34YfMQ7HKyxLs9mTbwl+8Y+06bk7AKQJGi -----END CERTIFICATE----- http_version: recorded_at: Sat, 12 Sep 2020 17:42:59 GMT - request: method: post uri: "/certZ/1429431d2a4fefd3/alternate/1" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIm5vbmNlIjoiN1dZUnZSUHpKbU56dGlaUFFGZWR5ZyIsInVybCI6Imh0dHBzOi8vMC4wLjAuMDoxNDAwMC9jZXJ0Wi8xNDI5NDMxZDJhNGZlZmQzL2FsdGVybmF0ZS8xIiwia2lkIjoiaHR0cHM6Ly8wLjAuMC4wOjE0MDAwL215LWFjY291bnQvNiJ9","payload":"","signature":"pLq2MYqa24947OI8T9EQ_tmxrFE3Pf2_Xmc_qTt0x1B31nszyM7XucP1pOUIYrq1Uvz40N7xE5xOTKGkbfNfOw"}' headers: User-Agent: - Acme::Client v2.0.6 (https://github.com/unixcharles/acme-client) Accept: - application/pem-certificate-chain Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/pem-certificate-chain; charset=utf-8 Link: - </certZ/1429431d2a4fefd3>;rel="alternate" - <>;rel="index" Replay-Nonce: - rA5qxa-R_xE2QmI-zNdt5g Date: - Sat, 12 Sep 2020 17:42:59 GMT Transfer-Encoding: - chunked body: encoding: UTF-8 string: | -----BEGIN CERTIFICATE----- MIIDWTCCAkGgAwIBAgIIFClDHSpP79MwDQYJKoZIhvcNAQELBQAwKDEmMCQGA1UE AxMdUGViYmxlIEludGVybWVkaWF0ZSBDQSA3YzEzZWQwHhcNMjAwOTEyMTc0MjU5 WhcNMjUwOTEyMTc0MjU5WjAWMRQwEgYDVQQDEwtleGFtcGxlLmNvbTCCASIwDQYJ KoZIhvcNAQEBBQADggEPADCCAQoCggEBALGQQuhs9YuDdGNNM1JiWUZJbz9eOY/r FU4oEgxCni41ONspCwBSLSs3e224XY6wKX23BR8R/SWdiJhq8XWTYfSKKjEoM6+q AV+lukSA3qdqwJaoPmTupVBjqbXW/GpVhiNNNrNRbVdgidmIAqF/UHq7UC8Nr38k IkRwL/BPiRWOB7QDHrDVu/L+lFqKmnwaS7sVJJXK6pZ6sISIGgVYmZntkpovt36B AnrCbidt18aFjFV3VKRq/Mq9hE2CrgfjG1rfqhjmA1xq6Pp18VxJTicc46P5ERBk QO7ZEYhb2JPr0SiowDkbcOPw4iOIL6V9Qk7kNt+UkweoNhrltO36OFcCAwEAAaOB mDCBlTAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUF BwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFGDX1vS08T9ANMeTFQqLEZpCwlWM MB8GA1UdIwQYMBaAFGnRgEZnF6ZdOw0D2IttAHN/g/+4MBYGA1UdEQQPMA2CC2V4 YW1wbGUuY29tMA0GCSqGSIb3DQEBCwUAA4IBAQA+G4V0jwP0NbSGyDM7n64IxYZ1 ImfukafTdvjhim+sA6pnHt6IkWDDr45uP2lvPP3eg61UZgYiuqzWV/CDeZRMK6Pa 8Sryg2nbpD2ojqNN9k4Y47I0nHtrsIL5noS39c7vcX596HMGW5Qqp5X6Gx5wzY+Z rwkin3jkgBpoT7eCagGy1m0dffJsN/8Mk9ZLR4o1rlJvzqXCQf6IZo00GqmHQhWh e1BpdDUz/42TVNgS3voyuTagAB7pj2fEThP0e86CUJ1bP7p0VwvwwSeXmJOcEt1q bfiWti053Nv7Lz7tmYkxqkT4Ucn1UwEGIkeiDDhnZvTn2XUcjFgpSPZ2TJWk -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDUDCCAjigAwIBAgIIHFH1QZ3HDNwwDQYJKoZIhvcNAQELBQAwIDEeMBwGA1UE AxMVUGViYmxlIFJvb3QgQ0EgNzY5MjIwMCAXDTIwMDkxMjE3MjQ0M1oYDzIwNTAw OTEyMTcyNDQzWjAoMSYwJAYDVQQDEx1QZWJibGUgSW50ZXJtZWRpYXRlIENBIDdj MTNlZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOD3cZac4SO+SVA7 YT37naFSRImuyZVpwrHwmPof0h9AYJM1yctchYZ/ncQ7r3/rhmWi3oDh7zrP4dS5 Sdp8KB+WcF2QdP7XkK8nuq1wjTZCOhqPv+0ccX0AwoUZOfzmODPBasqdlW82QlPJ ITc4aFzSE8wcE222BKq8FRojza1uZWf1FyoPyBHNkubSfLRPENa5LSsQ/NJZR3mU jPZUBaTlegsWVShPfi9m2RQQVyE/+dtjfvWVyxvdeOpy5vSwFqU6o0z+uq0hy7B0 4sU9Trwl4e+JmCDMFBs1obfaSLi3DvZEJiRPajQIVK1lfB5IumUtz7OBx0fapF/d EpxuBOsCAwEAAaOBgzCBgDAOBgNVHQ8BAf8EBAMCAoQwHQYDVR0lBBYwFAYIKwYB BQUHAwEGCCsGAQUFBwMCMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFGnRgEZn F6ZdOw0D2IttAHN/g/+4MB8GA1UdIwQYMBaAFBH2SDFcPxGK4EhVjcjBEQGX9Jav MA0GCSqGSIb3DQEBCwUAA4IBAQCESm3u8dK/WvHSYGcb8arN4AMnEArVukP8oPuX xWRSgeVq5nurtAIP6skDjU/anGVph1CP7lEQ/nkCDRZnxp4ad15a1vt5IsMzztTu dTfXxdICHp5roB8hgTx3R5hTseBgrAtW4aeaPizDas41TT+cZNWOBrmWEir6xhoY iztRmEXf7+WhjSFtkYah73uLfEhOaWKyMaWcx/I216XUUBOKfeB4r6D09e8J8FYG yzluRWeJSQBInns0CfkGxIbJi+H3OyGMPtGcHXVLdweZarE1fhsXIGAFjrNytD5r /FNrsit8gt5COknW3JtahIF7j/l3YWpmSx+9D1bDF1EHIvsm -----END CERTIFICATE----- http_version: recorded_at: Sat, 12 Sep 2020 17:42:59 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/order_certificate_download_sucess.yml000066400000000000000000000505521411343312700263150ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:10 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:10 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - NK_zVXPWY-82c9aq5M2Mfg Date: - Thu, 10 Oct 2019 03:08:10 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:10 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiTktfelZYUFdZLTgyYzlhcTVNMk1mZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImUiOiJBUUFCIiwia3R5IjoiUlNBIiwibiI6IjBvNW95d2xrcU1OUnJkM19oWkhMZWhOd2pMT2Rpb2dQVEFhXzFNRUJ0RTM1LTMxOHpDWW04Q1J3dnBNVzFNcDFIT2tTd3VFSXpTU2V5ekxMUHpBQ1ZlTW5rcno5R3NlV2RscThzMTVnTjRmMVNacnYyMXRxZmFySVpwN3RGUlhMaEQyVExUX3d5bk5uc2dodFBHbTJ4QmF4YXhJWVNoRGlMYWZSSGNyVG9GRUVkdjFiNFlGQzlKaEgyekNmYmFmUU8zTV8wMlpEMjFkN05mVjRnZU52dURWSnhQU2p2VUVERWRnZ0FJMktPVUlxUzRGR1JfZ2xYLUtaQW5OSV9FWmVFMGU3NElmdGxMOU9hUXQxNGNfU3RZZkVUS25id1ZpUHJ4YTc0ZlJDNFNCdEZBSTFZc3FETEpOT1BTV092YnRTMG9FSXc0STVFNkVKeVpORnp1bXphdyJ9fQ","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"Kn3nwuJpBxb3CDgSNuzgH15PhSzMyQXp92Un810pZy_tDD_-U29bGZnmyPfWIBKOhw75q1AGzq1BTS0gcIT0fOPXyEI1McnCD1G4QC1abLtYC0VvsAn1sYYm0GycO1GqZVmjb1X-ERpWsvZowD4uScu4hJFRJNEqmE0aGNzxN1WA-CYTMwUhETLnhRGcqv7lm-S2lQQmFyWzhikvfhMHn0X16DfIGecRreB6w2ZLSvtqKLWV6nLrn-lvT4QlD7auXwtprH58f7BUwVtYAXIeTgvLOK7Mj2Kn6LzRCsVmCdP4ybvnEyaUFSKmoLBgJaHhXPsP6T4gxrWCJOhzBgOJDQ"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/48" Replay-Nonce: - fADieaXWdZsHD94HKoAIrg Date: - Thu, 10 Oct 2019 03:08:10 GMT Content-Length: - '550' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/48", "key": { "kty": "RSA", "n": "0o5oywlkqMNRrd3_hZHLehNwjLOdiogPTAa_1MEBtE35-318zCYm8CRwvpMW1Mp1HOkSwuEIzSSeyzLLPzACVeMnkrz9GseWdlq8s15gN4f1SZrv21tqfarIZp7tFRXLhD2TLT_wynNnsghtPGm2xBaxaxIYShDiLafRHcrToFEEdv1b4YFC9JhH2zCfbafQO3M_02ZD21d7NfV4geNvuDVJxPSjvUEDEdggAI2KOUIqS4FGR_glX-KZAnNI_EZeE0e74IftlL9OaQt14c_StYfETKnbwViPrxa74fRC4SBtFAI1YsqDLJNOPSWOvbtS0oEIw4I5E6EJyZNFzumzaw", "e": "AQAB" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:10 GMT - request: method: post uri: "/order-plz" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiZkFEaWVhWFdkWnNIRDk0SEtvQUlyZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9vcmRlci1wbHoiLCJraWQiOiJodHRwczovLzE5Mi4xNjguNTYuOTM6MTQwMDAvbXktYWNjb3VudC80OCJ9","payload":"eyJpZGVudGlmaWVycyI6W3sidHlwZSI6ImRucyIsInZhbHVlIjoiZXhhbXBsZS5jb20ifV19","signature":"pznNn1T-buKIIaEuoJUmJOc1w3SfONCA3sb5N77-k2iz2_aL8JT-KmxF4Pt-2hW_ct5ZBqS9K1oM7a1X4kXsMq7EvJ7sTEw_vJaKQlou6MxCndkRZbdiCR7A83QOf1w7cs6619glLVr0LHfC4QkjtNUyuJddR7BxbhbMID9jjvoTsB6BZNWVrGUGVAQAnkBtHsHxd6jHdCb0OW9Pkg_9nQdvFXMB63Sdzv_LtwW1JudgxxhIDR3lNMykkiwMGDrsajm_5PdC3L4Gqc0lCSBYSeScqWQJXmfyZ7UAhBRoNw2JyLCfSjKVjxY8ovBzzRmfJ2KVmo-ROG8Nt8NOp0ilNw"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-order/QGSOVFW8rFp3qcIXzAmnM3hgIRoFEGJplbHJuQSeFU4" Replay-Nonce: - 0hEH7lx7NvNfiMkF07aHpQ Date: - Thu, 10 Oct 2019 03:08:10 GMT Content-Length: - '382' body: encoding: UTF-8 string: |- { "status": "pending", "expires": "2019-10-11T03:08:10Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/QGSOVFW8rFp3qcIXzAmnM3hgIRoFEGJplbHJuQSeFU4", "authorizations": [ "/authZ/XWK5M15onI-oajDO7l4U4y8kTfCnfCyLfqjqQ2IT6ds" ] } http_version: recorded_at: Thu, 10 Oct 2019 03:08:10 GMT - request: method: post uri: "/authZ/XWK5M15onI-oajDO7l4U4y8kTfCnfCyLfqjqQ2IT6ds" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiMGhFSDdseDdOdk5maU1rRjA3YUhwUSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9hdXRoWi9YV0s1TTE1b25JLW9hakRPN2w0VTR5OGtUZkNuZkN5TGZxanFRMklUNmRzIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNDgifQ","payload":"","signature":"lF9ASHls_lBS2e2SxqEFT5yjkOx59nCo4pSDYfrNsgOgyX1V-CvnbVPYTBTaPDrZUh7xSziv9BjiZES_C7GBh4TdHbbs-G8IB0thl6v93bEntSG0CFx3gSj0QbAZxVscYQpV41EUlin2FNT0K7VFetSdrwYAlFGLgPVH8P9z5z4WGy4M0gm8zRWwQXkRmfNZOWDpO2RMZ_gPRL-yM3v_ufeALr4HczwjuacW9F56EAbROpjuRTfqsxkA--u7mKGh0Mowa0jJN4IBYvr5c11iENttP_MUvlLCylWHvZCiNkvao9edAnPX_zU75z5i0zdt88K5PKgAQy7CoIXArb046g"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - rID4TtTPxUNaqtNpsTS1cw Date: - Thu, 10 Oct 2019 03:08:10 GMT Content-Length: - '874' body: encoding: UTF-8 string: |- { "status": "pending", "identifier": { "type": "dns", "value": "example.com" }, "challenges": [ { "type": "tls-alpn-01", "url": "/chalZ/p1g3yOWyQOtj7HINAgLhEl-WVnHKRIJ0FKsWwdqsyT4", "token": "KvLfL116MtA2Jf5zVwhqqLOC9EktWQR9-dC6yizGVcA", "status": "pending" }, { "type": "dns-01", "url": "/chalZ/8yIOURvWw5u8MZpL02OO8MMBsFZDpGYgym7MtYRGunQ", "token": "6wduqbAs_oof9YQ3iUXE3pjSx2nmfel68lnvbVz9ZXU", "status": "pending" }, { "type": "http-01", "url": "/chalZ/8sBBcMuzFejI1CU5RlEgXuEROnJDIRjcoMNX_64-syY", "token": "U04vI7bbzKyECL3sHOT8VWg44op-nk2g1AIjz9YkfXw", "status": "pending" } ], "expires": "2019-10-10T04:08:10Z" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:10 GMT - request: method: post uri: "/chalZ/8sBBcMuzFejI1CU5RlEgXuEROnJDIRjcoMNX_64-syY" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoicklENFR0VFB4VU5hcXROcHNUUzFjdyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9jaGFsWi84c0JCY011ekZlakkxQ1U1UmxFZ1h1RVJPbkpESVJqY29NTlhfNjQtc3lZIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNDgifQ","payload":"e30","signature":"ey9-wf4D7i8csQIPY8Uqanxrwfoh8lbWjBJ5LYwfdYxm7yq6UsscryDLIhpx4j5YsfRTfzt9r4esAiA4sBkwTYwLcwjCOVU6TPnGi-lrQHs5ZMiEcCqsryTc0bszenEDWDtJOSEHoV6b3PMPTtpAKmTB4bWaiOEl8nK5QHNCRzaFt69BtHPK0G5sDwatic1GqzzsuQ7he9aZbnrJ9mN7hGn3brL1aJgklYdGncxE23GmLBPJPFDgSJkukaz8yMj3DrJHLNjzzu5MJy7oUcHZcg7CcEXqdOiOqLZ-EvtqCHlnQ2wJyV3YeSOKj5Qj9tvn6CHs81FiLWRoc-bZVdJHfw"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - </authZ/XWK5M15onI-oajDO7l4U4y8kTfCnfCyLfqjqQ2IT6ds>;rel="up" - <>;rel="index" Replay-Nonce: - 0j-rF130w_QUu6EsIDlbjQ Date: - Thu, 10 Oct 2019 03:08:10 GMT Content-Length: - '198' body: encoding: UTF-8 string: |- { "type": "http-01", "url": "/chalZ/8sBBcMuzFejI1CU5RlEgXuEROnJDIRjcoMNX_64-syY", "token": "U04vI7bbzKyECL3sHOT8VWg44op-nk2g1AIjz9YkfXw", "status": "pending" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:10 GMT - request: method: post uri: "/finalize-order/QGSOVFW8rFp3qcIXzAmnM3hgIRoFEGJplbHJuQSeFU4" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiMGotckYxMzB3X1FVdTZFc0lEbGJqUSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9maW5hbGl6ZS1vcmRlci9RR1NPVkZXOHJGcDNxY0lYekFtbk0zaGdJUm9GRUdKcGxiSEp1UVNlRlU0Iiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNDgifQ","payload":"eyJjc3IiOiJNSUlDaERDQ0FXd0NBUUl3RmpFVU1CSUdBMVVFQXd3TFpYaGhiWEJzWlM1amIyMHdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFDNzRIRWFuZk5lUHNsR18tMlRoM0lWOU1ib2dZaF9QV0lRNGdRQkJibHVZRHNXRndBRldOV19hZ0hheDV6eEFiYnhCcXBieko3d3otNFpHcS15UU92YTAtcEc3ZlQ3TTlvQUVTU3E2YThkM2R6bnFmQ00wdFJ4UkNLbW1IWFpBNkJYVXNEYVNpTXVONnBpUnFSZmdBek1KSkprTlBpQWdrWXQ2NVluUlpWdU5WRV8zQ0F6RzJhb0xUZWRUeFZ0RVFBTlRpT1RSeWdyVmdxckNQMnU1U3dFLUx1cnRJU0N1ODFGYV8zenluay1LWkpMckZjcEpSQkUwbHRjdmtzQzNuNVRwLTBqeEFURDA0c3lxLU9CTGRKZUQxNzJ2cFg3OElDMjRnNE9zYW9EOEpvcXQ4cmV3Y3g4ZjJrZnluUFk4TGJDSmdyWVpYZzhuUXpSS0R1Vm9XcWhBZ01CQUFHZ0tUQW5CZ2txaGtpRzl3MEJDUTR4R2pBWU1CWUdBMVVkRVFRUE1BMkNDMlY0WVcxd2JHVXVZMjl0TUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFBY08ybnJ6YzVKeWZISmR5Sy1PNml4UW1GbXlNMmJoVVFySkpxY2x4aUxVbm5yUUNkb1cyTEpodzFUc3lEbVMza0ZzNTR1eHQteHFXM0FoMFJ3bXV4V3dZX2VTSV93TDJERUZ6bW5hUHQzMzVQVEJHNEVRaHpqRlVXT29sdE45MXJwRGxibkRvN0hFY0F3NzlYOE9XNW5Pak9kOURZSWkzbUdYc3NhamhlWlBEcnVTMEhWcmg3cFNaLTg1NkF4VVY4OGN6YVRRNlFOaXRBcmZTRzNjNU11X0pabEdiX1FyQjY2YUgzNGxUMXU5ZnZGbEtER0s5YUg3R3VZYXBGeXJsN3p6ZGdTRGFITHczb0ZQb05jZWNueTg4WkJoUDBCZFVHMG9jWmdUakZFLXBqOWpGZnBEbGUyWS1FZkxYd1RaNl9NNWJsdnYyR250QkdCcUIxTk5MZmsifQ","signature":"z7yk5Oz7DlgjEegZb9gPSyvfBYK_MZ5T_1rKFKZgkmJhINrMOnFJWCNqFnyULlWM1jqqRJRtnmoVhfddzoe7g6HotX7G59nvRHfCWRILw_TvRHZAXpt5JdRetzagHyb81iQIxVZO1eWajZmFv3FmBuo9_M-0x-epjmb-CmVsi_S_ZENIs7eihP2L5RdHjqXr6iPqoXhvlXFWhry9MOE6n2d_pckjRIfHh5m5MgGQyTSzCbzN6iZJDWeCLRPsYZzlfwiBpSj45iZtFLKcP61vlU5KPLHQXK4tYZ9zHDMbjKZ4_ZcDxcgEkZmjdVnEnO2JTeEIFlBOYVHdzP7TvpiNdg"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-order/QGSOVFW8rFp3qcIXzAmnM3hgIRoFEGJplbHJuQSeFU4" Replay-Nonce: - N82dUFquhYQJoI5rPCJarA Date: - Thu, 10 Oct 2019 03:08:11 GMT Content-Length: - '385' body: encoding: UTF-8 string: |- { "status": "processing", "expires": "2019-10-11T03:08:10Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/QGSOVFW8rFp3qcIXzAmnM3hgIRoFEGJplbHJuQSeFU4", "authorizations": [ "/authZ/XWK5M15onI-oajDO7l4U4y8kTfCnfCyLfqjqQ2IT6ds" ] } http_version: recorded_at: Thu, 10 Oct 2019 03:08:11 GMT - request: method: post uri: "/my-order/QGSOVFW8rFp3qcIXzAmnM3hgIRoFEGJplbHJuQSeFU4" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiTjgyZFVGcXVoWVFKb0k1clBDSmFyQSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9teS1vcmRlci9RR1NPVkZXOHJGcDNxY0lYekFtbk0zaGdJUm9GRUdKcGxiSEp1UVNlRlU0Iiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNDgifQ","payload":"","signature":"xL48N_hKCbPpDFZ-uvVMVXSFpa5evFJ_qGLIJ9ugvf2lb0oncKT4DOBKIGtrpcSpOmUXaoABvkSRCKUippxDldegfhmRtClae-r67Jh3srI8FZc54K2xYoGCuq-gEvrFGZXXLAR6HKeT-XrgmqUHfHKU6jzpzyliYiMhsVEvq_kacTrQGu4fNX8QWOOKCOv6aBNm-1C6QLWWxSBfkgMRGXu33B8DHQJphyP1XeA16eCfBTVSMIfXYVJICOsVHij9mR3iLJVVZU8QwUkcONtYgAPtn-SoxiN3ky6fdjQRBC5U0oSrK6vfe-VvzSX2IbA5eveYhRp3sbVjxE-PAMF5Cw"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - pUWSIRPthpg-nGz1Eo0j7Q Date: - Thu, 10 Oct 2019 03:08:11 GMT Content-Length: - '452' body: encoding: UTF-8 string: |- { "status": "valid", "expires": "2019-10-11T03:08:10Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/QGSOVFW8rFp3qcIXzAmnM3hgIRoFEGJplbHJuQSeFU4", "authorizations": [ "/authZ/XWK5M15onI-oajDO7l4U4y8kTfCnfCyLfqjqQ2IT6ds" ], "certificate": "/certZ/6b612c23b90317c9" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:11 GMT - request: method: post uri: "/certZ/6b612c23b90317c9" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoicFVXU0lSUHRocGctbkd6MUVvMGo3USIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9jZXJ0Wi82YjYxMmMyM2I5MDMxN2M5Iiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNDgifQ","payload":"","signature":"TUoLKoAIAPfpjZhuAgQsf4lDbcFf4YEsaaJWcVhw6ZYZNBUaUq0Cgm90Y0cxUeuixcHu-RKQKAjX5Cb-mdErD4UqamFlcrK-yGjwlFfyuOVzyjoz4JfkynWl6dbyDKosCV9TQ8noV92m2NF8ksgfHTisk9ByuXMfayujASZXKGgZRi1P2V6bv3lIjoUuonvkQkvUJeQ3yRY2liET6yku8j2m9efO0-N9dpWvV-U4Oor4a4jjeuALhfIhh_twEKrkp46OgX9XuWob7Gxr0jPUPnoUcjIDTs35k_8G2xxdLScGjehxtJZYJmw7Idrbf0OzxaRooeSj50Ie_XMJAnWn2Q"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - application/pem-certificate-chain Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/pem-certificate-chain; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - 5PtZN80mx9l6RhYY1SFP2A Date: - Thu, 10 Oct 2019 03:08:11 GMT Transfer-Encoding: - chunked body: encoding: UTF-8 string: | -----BEGIN CERTIFICATE----- MIIDWTCCAkGgAwIBAgIIa2EsI7kDF8kwDQYJKoZIhvcNAQELBQAwKDEmMCQGA1UE AxMdUGViYmxlIEludGVybWVkaWF0ZSBDQSA2Nzk0NDAwHhcNMTkxMDEwMDMwODEx WhcNMjQxMDEwMDMwODExWjAWMRQwEgYDVQQDEwtleGFtcGxlLmNvbTCCASIwDQYJ KoZIhvcNAQEBBQADggEPADCCAQoCggEBALvgcRqd814+yUb/7ZOHchX0xuiBiH89 YhDiBAEFuW5gOxYXAAVY1b9qAdrHnPEBtvEGqlvMnvDP7hkar7JA69rT6kbt9Psz 2gARJKrprx3d3Oep8IzS1HFEIqaYddkDoFdSwNpKIy43qmJGpF+ADMwkkmQ0+ICC Ri3rlidFlW41UT/cIDMbZqgtN51PFW0RAA1OI5NHKCtWCqsI/a7lLAT4u6u0hIK7 zUVr/fPKeT4pkkusVyklEETSW1y+SwLeflOn7SPEBMPTizKr44Et0l4PXva+lfvw gLbiDg6xqgPwmiq3yt7BzHx/aR/Kc9jwtsImCthleDydDNEoO5WhaqECAwEAAaOB mDCBlTAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUF BwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFDDuGNC3NaAvNCEXcSEBbLaz/NDg MB8GA1UdIwQYMBaAFIiN1hLypsnm8KWVi3ItK0Unjae0MBYGA1UdEQQPMA2CC2V4 YW1wbGUuY29tMA0GCSqGSIb3DQEBCwUAA4IBAQBmqbvbeCWhmTJrtt+q5Zlz5C9z ftpuUIMhAo8iTCOlXASlQ1G/6JmUv1SY/tp93rGIzFPU/wYKZsbw/qzu4eTmS6DZ q3U1cvb2zjUH7aRAl7etu1H0KVQG4gDw961zM4eUuHSybIgp1FKo+J6X3hHHVM6u sUAgYvLyyrVYpZxMKP/UCvbA4hZ/sbLJGfI2wzU/FKQjt41W3b+zpEEw8VcFkOfs eQ5YeUVIHAZ3HFNz0QB/2RTmKLtjZ7UpnmxZUeVMlJXKrYjhAcCBR8vb72BDdaWk fA/1pSyT7mbXyuxDJCvrwzzdHWw7PL2wzaCbultcuDn4oT15Hih28HjorEtU -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDTjCCAjagAwIBAgIIH8F+H5a3JeIwDQYJKoZIhvcNAQELBQAwIDEeMBwGA1UE AxMVUGViYmxlIFJvb3QgQ0EgM2E1OTY4MB4XDTE5MTAxMDAzMDU0MloXDTQ5MTAx MDAzMDU0MlowKDEmMCQGA1UEAxMdUGViYmxlIEludGVybWVkaWF0ZSBDQSA2Nzk0 NDAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC1TkMbn1tCv0QXFen5 Was596VScGyD0ifqoq4/kb4WQ/debH8coZzz9pVKTPbZySY/X1ltStYBI/2GdIZg t/uw9hOW7ko2Agy4bcd6tD9S+eZK4F3rH1EJutUjuq9WLmmckT8PJEbToazvDTL2 v9YGcf56v0SCuCYQshNlx5ECKb7kWWqy5D6OzJPB24BRFX7MTD8ckkdhQmzafyI7 vVkDrHFUZslx1BUQ6lfJEy0mi/UmTgxrjPwTfe5UWF6N3AZDEUng8eWAnKW9px2g 5qTUShGMZG6E6OkFHX6rmT3MVuO+rWVpyW1zKbWxvlcAyyBR91Ju6tsJFF/1Y9t+ +XHPAgMBAAGjgYMwgYAwDgYDVR0PAQH/BAQDAgKEMB0GA1UdJQQWMBQGCCsGAQUF BwMBBggrBgEFBQcDAjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSIjdYS8qbJ 5vCllYtyLStFJ42ntDAfBgNVHSMEGDAWgBQECikuQVoCg4iOTz+f+0K8SqRdsDAN BgkqhkiG9w0BAQsFAAOCAQEAeyRyz24bmQqWGYXkM02ZWHlom1FNXVtfNOlzgzjC 8sUbFYJDaXefS7x1KJwGparNWmn0jopBrSjOJLCDDphqk1DcS2YPu+7CcyodXyGw CxRSe7gYGx6I0Z/wReeb5rscJ21kJK30Tt3z2hLXWBkxfdcHit3JNLn3HA5HQRph HUr3EUzoFHfNCBecY8lWkmLeN39I0MMCis49DTact6M1jT+q1c+MzjuWO+Bst6mr 6RebdTn4monMOHvmbaVR7+klY05dMjatBF5gV7sf8mPJwUZP5NnEcTLe6zgb+dh4 kDc7qJ6UvkuoDJmbHeSd27GdCJfK+nwc49UG/Fmd8+Zeyg== -----END CERTIFICATE----- http_version: recorded_at: Thu, 10 Oct 2019 03:08:11 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/order_finalize_fail.yml000066400000000000000000000225321411343312700233500ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:13 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:13 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - kVLaKJxnOiO-VJSMXXPRnQ Date: - Thu, 10 Oct 2019 03:08:13 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:13 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoia1ZMYUtKeG5PaU8tVkpTTVhYUFJuUSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImUiOiJBUUFCIiwia3R5IjoiUlNBIiwibiI6InhzRlUySjlBY1BvdFVwdE9UeHphQzlPLVJ2RExQUTlyMmFGRlExVmhSR0w4eE56Tm9VblMybnlSMXVmX2RpQW1fRmpoVVFzXzlDUjVFWE5qN0RVVjM5ZThiTHh6MTJMQmFnSzREZnpfVlVqQUxpbmZzYk1uZjFQQVdJcWVhRnZkMnladDROR29tNHp2eWxNcllPOUhfSTN3cnZidHluNlRwVlAyQ2RQSzVITm9wY0xiVjlwaE5Od0xVTWtQV0c0ejhTaXpNT1o0RkZhRGFRN3RzUW1qZEdlajVmaTFDVGdneVowMVdSY1pWbHFTbXJTSnhlWnk3bWZmX2FRR0U1ckxDdW92b015Sy1XNjIyWW5wTHhCR3ZydlNaVmFaM3hnVWdBVVFaYWVQbmFWN2x5X0dvWnE4enZwTzVIdjEtSzc5SlVHZnd1TVZUbkhCanI1aG1VSW1kdyJ9fQ","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"gnJXJ9-8EP2B6ocY9L3cIvKo_HEyOzSfzgEMpMLGvO_8T_letIULYQG0fUiExCVEq7CCPD1IgSRUFnDriqtwBRUiqwOUFhu9lUCj0WFa26DyPRhRV4MyMNVEMdUP4bvtjnD3zWwClOZS2Onr3R7vBM7zys93DDbl6Zn0Vxx3oSZBKXsc4iteZQu_1J6Ofu6WEOGoGS2TLGUgJ79DAC3ekZP1eX__sFueDCPgkga-mt6w0QsR0NW7LkBu47wsuO95124Xkmuh-KSzS0wwlUPVEgf9K5mwmGDJBINdQzlEzdaUw_JYo0f2RBwj6gn6DhwS1tgbhfEfYmfoFuvkVyyWjw"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/52" Replay-Nonce: - X1wmGhynmQeR_R4OQNpKUg Date: - Thu, 10 Oct 2019 03:08:13 GMT Content-Length: - '550' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/52", "key": { "kty": "RSA", "n": "xsFU2J9AcPotUptOTxzaC9O-RvDLPQ9r2aFFQ1VhRGL8xNzNoUnS2nyR1uf_diAm_FjhUQs_9CR5EXNj7DUV39e8bLxz12LBagK4Dfz_VUjALinfsbMnf1PAWIqeaFvd2yZt4NGom4zvylMrYO9H_I3wrvbtyn6TpVP2CdPK5HNopcLbV9phNNwLUMkPWG4z8SizMOZ4FFaDaQ7tsQmjdGej5fi1CTggyZ01WRcZVlqSmrSJxeZy7mff_aQGE5rLCuovoMyK-W622YnpLxBGvrvSZVaZ3xgUgAUQZaePnaV7ly_GoZq8zvpO5Hv1-K79JUGfwuMVTnHBjr5hmUImdw", "e": "AQAB" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:13 GMT - request: method: post uri: "/order-plz" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiWDF3bUdoeW5tUWVSX1I0T1FOcEtVZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9vcmRlci1wbHoiLCJraWQiOiJodHRwczovLzE5Mi4xNjguNTYuOTM6MTQwMDAvbXktYWNjb3VudC81MiJ9","payload":"eyJpZGVudGlmaWVycyI6W3sidHlwZSI6ImRucyIsInZhbHVlIjoiZXhhbXBsZS5jb20ifV19","signature":"J1m_XnAKLSUPIZw9eUH-nGt5KWU5hTHeRpBPEo3fad1M5iMEPLVSiWvh3ve8P0DDQXINva1a9PC9L8dqXqYkiRyVBcDjXiTfzGc-L_GI3F8yMgxRLc7BwAchLplHUyDLV8hZhXzu-1x3voEh33HGgdqzbUGVg9gn8RyABnKPEkIjPmT1Qq9plD9_azysIzk9_bm7ZgOH4Fh141SPijCr-NAidY0bKyOvEBjTnJXVHuxNtYHZQQ-zv9A161sJL8ivnF9hO5-cR27XrzYWUM3BwW3KplOcZS-CkFtYoXb2CPv1bOxqds-IjOha5qW7BiEha4vESJtZJhxP9FbJKPymFg"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-order/vil5ixnNBUeuUyCgpTVJ_9j-3Mf6CgmOn_iWXD-KbGo" Replay-Nonce: - Url2LmypRkL4HRv4fUruUg Date: - Thu, 10 Oct 2019 03:08:13 GMT Content-Length: - '382' body: encoding: UTF-8 string: |- { "status": "pending", "expires": "2019-10-11T03:08:13Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/vil5ixnNBUeuUyCgpTVJ_9j-3Mf6CgmOn_iWXD-KbGo", "authorizations": [ "/authZ/pMOoDE6Fa1hXkXgyL_LCZC61buGx1eUJX7VaSo-C7GQ" ] } http_version: recorded_at: Thu, 10 Oct 2019 03:08:13 GMT - request: method: post uri: "/finalize-order/vil5ixnNBUeuUyCgpTVJ_9j-3Mf6CgmOn_iWXD-KbGo" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiVXJsMkxteXBSa0w0SFJ2NGZVcnVVZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9maW5hbGl6ZS1vcmRlci92aWw1aXhuTkJVZXVVeUNncFRWSl85ai0zTWY2Q2dtT25faVdYRC1LYkdvIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNTIifQ","payload":"eyJjc3IiOiJNSUlDaERDQ0FXd0NBUUl3RmpFVU1CSUdBMVVFQXd3TFpYaGhiWEJzWlM1amIyMHdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFEQmNsMmFLbjhVenpPcGpuUHkxeXhIT1RaQURVU0xmSVdIeFo1S0lXNU9WMHF5eG1nMV90bG9hU2ZjMXNJOGttRmRaQ1FYdURPQ0kyWVdXeDJqeDlMaldfSHo3QkxEcmFOVFoxcGFSakhmbm4wQ1hVZEdNeTJreVBKUk9iR3hxREQxN2cxVGtTUXdvbGJVc2tMLW9ucDNtME5JMl84M0ZjRzl1dzc4U0NHQ2ZzcVhzaHBmbVdHakMxNnBYbnhuMFd0dGQzS3JHZXVMUHUxNEM4dXRYYmhyZUxnaWhGYXFwN3AzSFdTOFppRTA5M1ZmTG84UXlJY2NIWXRsNGF2MzRIZDkwLXBmX2NPM1ZIOUxxVmQ3dkRGM05oLWQyelUwS015ODBFY3BvdVNnNWJ2Q000WmZTcVRiVGw4SnZYMVl4LW5SOUdLRXRjUXNPdDZEQkY3WXhXVGpBZ01CQUFHZ0tUQW5CZ2txaGtpRzl3MEJDUTR4R2pBWU1CWUdBMVVkRVFRUE1BMkNDMlY0WVcxd2JHVXVZMjl0TUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFCSjhLQ0tQejB0WkZERWdsTTc0WE5uRzhoV2c0aFUxNUNOWGRsX0FuY0JTdlBVRGhlOGNFR3JPN04yNlpzdURXT0FFcWd0UnB0UXVjeFVwd1Ntb3piaEtvNFBSTkhkNnpGbkU4LTA2VDJWZ1AtazZveFBlWlJua0VES202Z3h6am1IQVJyczVuVjJEWkFFVTdPak9BckU4WDVMT1NjU2xYTjMxOHlTTno2dGY0enVNcDNwQmx6NnBkbUs3M3VSMXdtUG11SUxMQnpsOE1rbG44TlVYTnMxenVyRy1rdzR3M1VuWjVWRWswbVVYMGh1eHJGcDBtMjBPc09IZi1yb20xbTI3LVpWb0pzcmxGaWcxYTc5UkNFRDh0QlpjTDI0STF4Y0tkMzEwT1R5LTR6bFI1Mk16eVJpMVozTDY2NUEwcXhsdE1KenV2LTNHZzYyQ19uRUNOQmQifQ","signature":"um5uQaqg0EptwWcwZZFLSYGPhjmfZVlDg-b697ua8suI5ShXoSL53DSL7o5wAZwzw-543REtwift9SYVBVfWhkmrbvuJs-EN3ZzCkLGsZ2EuMWG61vwx5NkbVCNbaoKN2rfwOVB6a_WTQaN6d77DgnUlPOOgRHd2r3aESepd4etu0RolMkoCmg2RTKASrApbP29F03fHhO-kc20PwPSXUJb3jCPAhBDZpie93ZwCDxU3YTHGQ-hMo04ikj9tS13nGTVimMjkn3ftIiFyubL0aNniYWzZ68NSeC4Qii-o_23nY9l6zIIeczagUE9aAziGY1EXADTqKRAIK7Y6wLW5iw"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 403 message: Forbidden headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/problem+json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - sBJfAMB4HHDijXIoHvtXVg Date: - Thu, 10 Oct 2019 03:08:13 GMT Content-Length: - '134' body: encoding: UTF-8 string: |- { "type": "urn:ietf:params:acme:error:unauthorized", "detail": "Authorization for \"example.com\" is not status valid", "status": 403 } http_version: recorded_at: Thu, 10 Oct 2019 03:08:13 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/order_finalize_sucess.yml000066400000000000000000000305041411343312700237400ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:12 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:12 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - eXgdB5U8vwq3aMiy4fwRPw Date: - Thu, 10 Oct 2019 03:08:12 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:12 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIm5vbmNlIjoiZVhnZEI1VTh2d3EzYU1peTRmd1JQdyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImNydiI6IlAtMjU2Iiwia3R5IjoiRUMiLCJ4IjoiOWtSZVdTVUNicEl4M1hQSElUenlsN2pPUXBoektWWkNLODJRVHc5NlNCZyIsInkiOiJKakV5Z0ZlUGhsRENQQnBRenZaYTNwMjB4VE1EaTNjY296bTRxY0wzRTYwIn19","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"6cXSYno0eMy1x3iNFVGxYoqiA_sRDI86EGAVZsixMQo5brYjr8jBj-Jcn38oOe97pjQcq14JoCQ3XZyj-0rYBA"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/51" Replay-Nonce: - y-XI6fnOizStSUGLsoWq5w Date: - Thu, 10 Oct 2019 03:08:12 GMT Content-Length: - '311' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/51", "key": { "kty": "EC", "crv": "P-256", "x": "9kReWSUCbpIx3XPHITzyl7jOQphzKVZCK82QTw96SBg", "y": "JjEygFePhlDCPBpQzvZa3p20xTMDi3ccozm4qcL3E60" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:12 GMT - request: method: post uri: "/order-plz" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIm5vbmNlIjoieS1YSTZmbk9pelN0U1VHTHNvV3E1dyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9vcmRlci1wbHoiLCJraWQiOiJodHRwczovLzE5Mi4xNjguNTYuOTM6MTQwMDAvbXktYWNjb3VudC81MSJ9","payload":"eyJpZGVudGlmaWVycyI6W3sidHlwZSI6ImRucyIsInZhbHVlIjoiZXhhbXBsZS5jb20ifV19","signature":"vHUIiVY4S0zoV_nmG9rgJY_dfN1qi96byWQPS2-XY4TZ-Zb3WplqRfwnIoOdT1mopZOifsJMM-eRN5SQ_DGs-Q"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-order/ezztlDTlLim0DfYhBtnnHEHmn2RSPStum-0DgsjsFSU" Replay-Nonce: - FRIoCCA3rdd23u2pA8rGvQ Date: - Thu, 10 Oct 2019 03:08:12 GMT Content-Length: - '382' body: encoding: UTF-8 string: |- { "status": "pending", "expires": "2019-10-11T03:08:12Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/ezztlDTlLim0DfYhBtnnHEHmn2RSPStum-0DgsjsFSU", "authorizations": [ "/authZ/pHqgtLvHeo5ysrFo9l0a1v6cjRs0Os5wEoXetY1qu2s" ] } http_version: recorded_at: Thu, 10 Oct 2019 03:08:12 GMT - request: method: post uri: "/authZ/pHqgtLvHeo5ysrFo9l0a1v6cjRs0Os5wEoXetY1qu2s" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIm5vbmNlIjoiRlJJb0NDQTNyZGQyM3UycEE4ckd2USIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9hdXRoWi9wSHFndEx2SGVvNXlzckZvOWwwYTF2NmNqUnMwT3M1d0VvWGV0WTFxdTJzIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNTEifQ","payload":"","signature":"AtkH7szzgwciAWZ__LwvMOXxyvY1P110xPhuOANKYAcEgjErA0rFlSD-IsaH3ydaF8P1drOrXMX6PbCoCIrROQ"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - vYh8pu3PdWL06-1yBOt-uQ Date: - Thu, 10 Oct 2019 03:08:12 GMT Content-Length: - '874' body: encoding: UTF-8 string: |- { "status": "pending", "identifier": { "type": "dns", "value": "example.com" }, "challenges": [ { "type": "dns-01", "url": "/chalZ/BPyUxpHk9VBUWETLpef422c30YnUpQq1AhYwjBOx0ow", "token": "Pew6mGqNbQpG0L2k5I3AUsvHhNL678x7cYTeJiwgnB0", "status": "pending" }, { "type": "http-01", "url": "/chalZ/oWTgx1IFDdWMcUiMoi-kca0ivlxn7EBI57Gm0g1D4iI", "token": "qffs3D2NoE6NWoMJNZVE1eK6K-LxhXgXMlQB71H67yc", "status": "pending" }, { "type": "tls-alpn-01", "url": "/chalZ/XPg8hOxVlHEJCktqbhhcWbA2SJm-qynJJBJ5Dbu1bW0", "token": "p9-aF3oU7ug-5H-CzBMXLJPBD3r59H0k9kKkuvuihhE", "status": "pending" } ], "expires": "2019-10-10T04:08:12Z" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:12 GMT - request: method: post uri: "/chalZ/oWTgx1IFDdWMcUiMoi-kca0ivlxn7EBI57Gm0g1D4iI" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIm5vbmNlIjoidlloOHB1M1BkV0wwNi0xeUJPdC11USIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9jaGFsWi9vV1RneDFJRkRkV01jVWlNb2kta2NhMGl2bHhuN0VCSTU3R20wZzFENGlJIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNTEifQ","payload":"e30","signature":"dgAwKcDCsVVqsgKBIx2RhES9EKmuni1VDbfgZ3uxChv9ZUCMv8852fJmWe-7CNPkEKQsnNp44MB4V-2qPC9zuA"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - </authZ/pHqgtLvHeo5ysrFo9l0a1v6cjRs0Os5wEoXetY1qu2s>;rel="up" - <>;rel="index" Replay-Nonce: - Vfwg7uOlfBhXqlIlHLo5ag Date: - Thu, 10 Oct 2019 03:08:12 GMT Content-Length: - '198' body: encoding: UTF-8 string: |- { "type": "http-01", "url": "/chalZ/oWTgx1IFDdWMcUiMoi-kca0ivlxn7EBI57Gm0g1D4iI", "token": "qffs3D2NoE6NWoMJNZVE1eK6K-LxhXgXMlQB71H67yc", "status": "pending" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:12 GMT - request: method: post uri: "/finalize-order/ezztlDTlLim0DfYhBtnnHEHmn2RSPStum-0DgsjsFSU" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIm5vbmNlIjoiVmZ3Zzd1T2xmQmhYcWxJbEhMbzVhZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9maW5hbGl6ZS1vcmRlci9lenp0bERUbExpbTBEZlloQnRubkhFSG1uMlJTUFN0dW0tMERnc2pzRlNVIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNTEifQ","payload":"eyJjc3IiOiJNSUlDaERDQ0FXd0NBUUl3RmpFVU1CSUdBMVVFQXd3TFpYaGhiWEJzWlM1amIyMHdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFDZHRHQXY2OXF5UlBpMXR6SlpXc3pQN0x3TXZNYTRFOS1RZ0w4Z0JvRjQ1Z0xiUkE3UzZITl9sLTE0UWNUYmxOdGRNcU8xOVVtb1Q4VVF1Z3RqSjZwai1DMlVxVFFVWDNYLU1Wc21pLVBoa1p6dmFzQngxT3ZPcjByc3RxQW0tNHRPaGhoOWRCcE42ZDlZUEJVRmZFbjhDcnlrckRaZ2xNWGc3cVYtSTBENS1ZZG5weVoxRGV6Q2s1ZTBKZFBsWVpFRmlNc1ZzbC1UakJLSTBfSVJqOU9ZamVJRXN0bFVHTFJkelRubEVBY2IxUklrd21tYjVXVkNjTDdDV2ZLM3Q5OXpEblROVGFFQmtxMGZsVGhMM1FEQ3Q0enloWFFxSm82VjQ4ckhZMS1sRUlEaTVmcXQwTlplRXlyM0pJaXVTOGpDYWJKOGQ4OWo1YUlpM0EwVGE1dlZBZ01CQUFHZ0tUQW5CZ2txaGtpRzl3MEJDUTR4R2pBWU1CWUdBMVVkRVFRUE1BMkNDMlY0WVcxd2JHVXVZMjl0TUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFBVUZvTFJiZnhUSjBPLU90VndyYkhlZllIenNOcjZlTE9YdGVxWm9oaE5ONlc2R210ZnNuOUdZVU56Tk1MZFlpdzI3UHU4TWhzYWpnaUk1VFNTMnFTN2V3UnpncFFLdG16N1FwU0VIZnFWd18tMzZqQzhteVJaWXp1S2lwWGRaOVFldmpqSVc3Nll4RUVHcy1mdnM5ZEd4aGwzRTlWNlJ1b0hWdmpWME9PRmZDRF8zMHU3UzV6Ylh4eGgxb2pVVVd4R05tekRfekRqRHZyR0xSQlNOSTVFd1VnSkdCUHBUNUNEQzRaUll0eUd6UzdqUHBRVXZNbEdfdlFLLUxkTEZBQnVsV2ExRnBaQl85WDFKcnN1R21BaEN3RUZmdGo0aDJ0bWdKYkYzTTRtcjU4WGpjSHF2SzZ6SEYxdEVBYWdXTU1FMksyNTlPWkRPaE41T3hrd3o3MXMifQ","signature":"VN6wwNrtFVeZMQIzLFMFvw4Yqkcf9NqRUW8DQ4UNe8VPN0wMxJ9hSVWAJgHbla0_lLmLcok9igKC252e6uKrOQ"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-order/ezztlDTlLim0DfYhBtnnHEHmn2RSPStum-0DgsjsFSU" Replay-Nonce: - Q_rbNRH8Js2tydNzdk_gpg Date: - Thu, 10 Oct 2019 03:08:13 GMT Content-Length: - '385' body: encoding: UTF-8 string: |- { "status": "processing", "expires": "2019-10-11T03:08:12Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/ezztlDTlLim0DfYhBtnnHEHmn2RSPStum-0DgsjsFSU", "authorizations": [ "/authZ/pHqgtLvHeo5ysrFo9l0a1v6cjRs0Os5wEoXetY1qu2s" ] } http_version: recorded_at: Thu, 10 Oct 2019 03:08:13 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/order_reload.yml000066400000000000000000000207271411343312700220260ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:13 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:13 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - 2ef0wBf72l6wQkRtpUVhOQ Date: - Thu, 10 Oct 2019 03:08:13 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:13 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiMmVmMHdCZjcybDZ3UWtSdHBVVmhPUSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImUiOiJBUUFCIiwia3R5IjoiUlNBIiwibiI6InZBNGg0R0dvaFJJcll6dFJBZU5wSlVCY2ZKTGlCSXEzR2tjdHhWT3NQeHRaUVNNbWRDbERwWHU4eS1rLUtnM0NqTzZzSXpRVy0zRDRQX0NTOGlhcko0ZWxwNk5BNUhNMXhyLTNJNmYyUDdCQjhGaXBzeDRuN1R0QzdBUy1MYy1ia0hjajk0YW9Ea1FCeWR1WUgxaHJCLW1hbjB2V183ZmFFbkJzVE1yeGJ2Zl9uX2lPenBWSU1fQnNmaDVCeWxaT0JkNW9iTDhwZ3JJTkViT1F3clFlRjVjMmtSOGRyckF6bmlpVXE0SUFjXzFoN3AyVzRVT19FLWpibGxJS09sSTNMWTh3b0xuMExrTDNiSFh1dXhjVFhDVEQwYV9FWWIwMkZhT2VHeDQ0VVBKOXI4MTMwdUpsZTVLNWt5cVdGaEd6WE1WWWUzby1HaE9KcjI3NHd6V3BpUSJ9fQ","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"P5b9rfG7CDxRmynq55dXfpqE9pqqHxqXJVjlk_7sdJRuTxUpTyGTeKk0pIMtRQs0h2uVnhSK2qHrNctULPhAJwhPEy3yv9QeJC9SpJxxVAChPP495D80GXW9mW0T2xslKs4S1Kwjx4A4A1HT2y2LDOM0b3BzfnnQLPww35PMXBLNF2x_oR8GfdTtK99ZYa3zFsxGbm_z8QC0fCxKsZrfMLGDXnDFQ7WFB08Xr04X2N9Ps4K0ccbMXNbU7zALw7xcmotRbFD4mBdd3p2BiaAm15nJE7mR5-GVDOVQRcYsOEnc9veB1icYsBNFA6J3AyZRAMDdQS_3PZt_H9GZXYjpFw"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/53" Replay-Nonce: - Vmt522LmOWDMVsDBL9ihUQ Date: - Thu, 10 Oct 2019 03:08:13 GMT Content-Length: - '550' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/53", "key": { "kty": "RSA", "n": "vA4h4GGohRIrYztRAeNpJUBcfJLiBIq3GkctxVOsPxtZQSMmdClDpXu8y-k-Kg3CjO6sIzQW-3D4P_CS8iarJ4elp6NA5HM1xr-3I6f2P7BB8Fipsx4n7TtC7AS-Lc-bkHcj94aoDkQByduYH1hrB-man0vW_7faEnBsTMrxbvf_n_iOzpVIM_Bsfh5BylZOBd5obL8pgrINEbOQwrQeF5c2kR8drrAzniiUq4IAc_1h7p2W4UO_E-jbllIKOlI3LY8woLn0LkL3bHXuuxcTXCTD0a_EYb02FaOeGx44UPJ9r8130uJle5K5kyqWFhGzXMVYe3o-GhOJr274wzWpiQ", "e": "AQAB" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:13 GMT - request: method: post uri: "/order-plz" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiVm10NTIyTG1PV0RNVnNEQkw5aWhVUSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9vcmRlci1wbHoiLCJraWQiOiJodHRwczovLzE5Mi4xNjguNTYuOTM6MTQwMDAvbXktYWNjb3VudC81MyJ9","payload":"eyJpZGVudGlmaWVycyI6W3sidHlwZSI6ImRucyIsInZhbHVlIjoiZXhhbXBsZS5jb20ifV19","signature":"ikxhHNLXGAaCd5hDRkVooALz2JnJoYpl7fp1ZxUzFuOoCd-zHnWF6vL7fsiL_38EkCzKfw-4eE2f8rvUHx45bShvMMzPocfaWkc-n-NudK5Kgujp78eQnRCO2_CcaQtaUXiUG3u-hLnGfxd9DDQUT7txwtCCUrLpSTWm0oP6cd6hLX3rSm14XwJBPpI6v7R_Y4-mQdED-X607KDTqoIQvc8-3mite5hlMBbXfCbmEfLnmQBdKRWfdh9NtJ6tR8p_9h42IGy6GtKvFpCxskdRcRsAgidmyibU4OjJ_0cAWjviXDvBaJDOKcjvIJjX_ITdBXw4qvBUQODMVMl1I6cf9Q"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-order/2rltAtUQAfVWLtdgX_P7nl59Idogx6XtBfgV2tuXSOY" Replay-Nonce: - CltoBpsxaaWMmcCfdwjjqw Date: - Thu, 10 Oct 2019 03:08:13 GMT Content-Length: - '382' body: encoding: UTF-8 string: |- { "status": "pending", "expires": "2019-10-11T03:08:13Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/2rltAtUQAfVWLtdgX_P7nl59Idogx6XtBfgV2tuXSOY", "authorizations": [ "/authZ/gJz0NmY9ymZdsoKXZm0NFN2vQICwDSozJCIwihcba90" ] } http_version: recorded_at: Thu, 10 Oct 2019 03:08:13 GMT - request: method: post uri: "/my-order/2rltAtUQAfVWLtdgX_P7nl59Idogx6XtBfgV2tuXSOY" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiQ2x0b0Jwc3hhYVdNbWNDZmR3ampxdyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9teS1vcmRlci8ycmx0QXRVUUFmVldMdGRnWF9QN25sNTlJZG9neDZYdEJmZ1YydHVYU09ZIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNTMifQ","payload":"","signature":"amB7sMcuX0h69xUgWYNZJQ2_9IVK7QasiSpwN1jQumPjoOksg5A9_WbxrEq2i36x04JQprFCTBjk7QBn97U7KsMJFWVC7cbU120Kx7P7WSaW8zPCVRYUl7wAXzT0QPZXBvsT_axRoXO4eQnnDBge6oPah6HUQQ_Vi7VmKMZ6P1pwNgYrw2fgeLKINnLcO9Q8_Y7209iKURpDM3_4pqZAuIkGVSdytCEp_Uiy059MX6SVvUOaeZZuo8dK_PRVYLwWJwySKyvVKDuqZWlBxyKbPySpWqGMzG5gBQA0T5bv4j9Zq8h5kWM3wFHRVFn4FDuQVx-9p8ojZWHIWcb1DPcjGQ"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - 3ShM2nwQQNYg20lAQ6xChg Date: - Thu, 10 Oct 2019 03:08:13 GMT Content-Length: - '382' body: encoding: UTF-8 string: |- { "status": "pending", "expires": "2019-10-11T03:08:13Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/2rltAtUQAfVWLtdgX_P7nl59Idogx6XtBfgV2tuXSOY", "authorizations": [ "/authZ/gJz0NmY9ymZdsoKXZm0NFN2vQICwDSozJCIwihcba90" ] } http_version: recorded_at: Thu, 10 Oct 2019 03:08:13 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/order_status.yml000066400000000000000000000126621411343312700221020ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:12 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:12 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - iX8A1ZF--iuYUR9_hREK-w Date: - Thu, 10 Oct 2019 03:08:12 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:12 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIm5vbmNlIjoiaVg4QTFaRi0taXVZVVI5X2hSRUstdyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImNydiI6IlAtMjU2Iiwia3R5IjoiRUMiLCJ4IjoicWQyRVB2N0ZKTnpJcko4MVlFcFh0RWM3ODNfVGtWRk9sRlNHMlpraldRSSIsInkiOiJXRVlYUHFkdlhmLXJGVk4wSjJKbzZWOXNfem1HejkxNDlQdVZTX0tndllJIn19","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"gs03FTPoqqRRGSGZUqN4DWPC8fw--mEEGr4CJ4F4zvDxjzijvIJqIZFk-gad4Iw-vnoYgqVnfEMxYLpBQybrwQ"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/50" Replay-Nonce: - CWTu9fWwwRSx6S0rkmrlgg Date: - Thu, 10 Oct 2019 03:08:12 GMT Content-Length: - '311' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/50", "key": { "kty": "EC", "crv": "P-256", "x": "qd2EPv7FJNzIrJ81YEpXtEc783_TkVFOlFSG2ZkjWQI", "y": "WEYXPqdvXf-rFVN0J2Jo6V9s_zmGz9149PuVS_KgvYI" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:12 GMT - request: method: post uri: "/order-plz" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIm5vbmNlIjoiQ1dUdTlmV3d3UlN4NlMwcmttcmxnZyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9vcmRlci1wbHoiLCJraWQiOiJodHRwczovLzE5Mi4xNjguNTYuOTM6MTQwMDAvbXktYWNjb3VudC81MCJ9","payload":"eyJpZGVudGlmaWVycyI6W3sidHlwZSI6ImRucyIsInZhbHVlIjoiZXhhbXBsZS5jb20ifV19","signature":"PYswmghKoB1wfPrqYItB_XmUKElIW_1t8Ui_FOvEQezc_H8_s2c8VRCD4cEnT0UczLSNHmwCg8KH-HO9GlN18Q"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-order/pF2bujKOeAqmFbop2GQgy3GA0AahpSPSMRGikDcCjNw" Replay-Nonce: - Vrl3vsP3I1GJ6JGkHffvOw Date: - Thu, 10 Oct 2019 03:08:12 GMT Content-Length: - '382' body: encoding: UTF-8 string: |- { "status": "pending", "expires": "2019-10-11T03:08:12Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/pF2bujKOeAqmFbop2GQgy3GA0AahpSPSMRGikDcCjNw", "authorizations": [ "/authZ/K0e3DRXwAH_XLhLKQSByTFf3JjEcbMMEFJrrA4XPUkE" ] } http_version: recorded_at: Thu, 10 Oct 2019 03:08:12 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/registration_agree_terms.yml000066400000000000000000000126431411343312700244520ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:21 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:21 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - 2ypJmsMoJqIBfkTovMJ6CA Date: - Thu, 10 Oct 2019 03:08:21 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:21 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzM4NCIsIm5vbmNlIjoiMnlwSm1zTW9KcUlCZmtUb3ZNSjZDQSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImNydiI6IlAtMzg0Iiwia3R5IjoiRUMiLCJ4IjoiSV9pVy1fd3hGZS1NY1VZWU1TN3RuVklUMnZCenY0QWdhNHluXzE3QjhFMW05SzdGaUs3Wkg5YVhDX0pRakF4LSIsInkiOiJ3RWxVUEJmS1owSkJscHVFbkVMdGJFYTRTTnl1VmhObVNwTTVXZUJGZmpObUFIay1tLTI5aGxHTFBWdWpQdVR4In19","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"dcY7ek129KQXqER1JrSltKapkGiP6IEvcQ59Zck8z1RazEgjD7NIFkl25xNXf0hs_3q601DOT5iEX8t7c8WvWm3SpqbsjU0lLY61s1PofqEoFIGjIiaj0OIOCQLXgqTU"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/74" Replay-Nonce: - 9C8wBG9HcZeC-7pFjabZAw Date: - Thu, 10 Oct 2019 03:08:21 GMT Content-Length: - '353' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/74", "key": { "kty": "EC", "crv": "P-384", "x": "I_iW-_wxFe-McUYYMS7tnVIT2vBzv4Aga4yn_17B8E1m9K7FiK7ZH9aXC_JQjAx-", "y": "wElUPBfKZ0JBlpuEnELtbEa4SNyuVhNmSpM5WeBFfjNmAHk-m-29hlGLPVujPuTx" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:21 GMT - request: method: post uri: "/my-account/74" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzM4NCIsIm5vbmNlIjoiOUM4d0JHOUhjWmVDLTdwRmphYlpBdyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9teS1hY2NvdW50Lzc0Iiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNzQifQ","payload":"","signature":"QnlziDAwDfycTS2RpoZRqQzZwnVqwraV9qH0eDkgDsn-awJIFwRDlhLKsR3Aeuflj0yAstSPpZK9AEgmBQhD8isFqSJ32IdxwBKwYUKLWIhoyi_eekxaWX9gYjgtlTuz"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - LsGGR_TRtJ2fycbdvHvJ6Q Date: - Thu, 10 Oct 2019 03:08:21 GMT Content-Length: - '353' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/74", "key": { "kty": "EC", "crv": "P-384", "x": "I_iW-_wxFe-McUYYMS7tnVIT2vBzv4Aga4yn_17B8E1m9K7FiK7ZH9aXC_JQjAx-", "y": "wElUPBfKZ0JBlpuEnELtbEa4SNyuVhNmSpM5WeBFfjNmAHk-m-29hlGLPVujPuTx" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:21 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/request_validation.yml000066400000000000000000000255111411343312700232630ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:19 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:19 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - Pec3ptlYfe2MNbIRaIb-ow Date: - Thu, 10 Oct 2019 03:08:19 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:19 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIm5vbmNlIjoiUGVjM3B0bFlmZTJNTmJJUmFJYi1vdyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImNydiI6IlAtMjU2Iiwia3R5IjoiRUMiLCJ4IjoiLUtIZ3FhTmE2SjBSSzhQMlFtWVlJRENaU0RPRnpvUFppdHk1aFFDa1BTbyIsInkiOiJCbDU3WmdUaV9YYWlpNDFBMUxHbVhFSTU1OHpFUjhmNVNteDQ0SmpjN1NVIn19","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"ECeh07I7ootmz9Zc8KjyZ1IK7Iqx27UpO0d3NJWJEyZCUc0igKDIKtItnzcbJtqXkQ8-EZQEgNobK9ZEn-sk7Q"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/67" Replay-Nonce: - lixX8T7bs2d_gA4UeYHgFA Date: - Thu, 10 Oct 2019 03:08:19 GMT Content-Length: - '311' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/67", "key": { "kty": "EC", "crv": "P-256", "x": "-KHgqaNa6J0RK8P2QmYYIDCZSDOFzoPZity5hQCkPSo", "y": "Bl57ZgTi_Xaii41A1LGmXEI558zER8f5Smx44Jjc7SU" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:19 GMT - request: method: post uri: "/order-plz" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIm5vbmNlIjoibGl4WDhUN2JzMmRfZ0E0VWVZSGdGQSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9vcmRlci1wbHoiLCJraWQiOiJodHRwczovLzE5Mi4xNjguNTYuOTM6MTQwMDAvbXktYWNjb3VudC82NyJ9","payload":"eyJpZGVudGlmaWVycyI6W3sidHlwZSI6ImRucyIsInZhbHVlIjoiZXhhbXBsZS5jb20ifV19","signature":"DiusmNQoDz8ckkrSv21HMD5H3BitPESynLrjtxFwRdOI99kpki8IDvltYqpsLbgzBYhnjn4st0pV-JdtpDukNg"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-order/OvusK_wkm_0tLwJ6Ydibbn7AmWugSGxlHsKwBFZOP6g" Replay-Nonce: - _DZ_JAyT_vCTJ0rQ1uEe6w Date: - Thu, 10 Oct 2019 03:08:19 GMT Content-Length: - '382' body: encoding: UTF-8 string: |- { "status": "pending", "expires": "2019-10-11T03:08:19Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/OvusK_wkm_0tLwJ6Ydibbn7AmWugSGxlHsKwBFZOP6g", "authorizations": [ "/authZ/XEJCSSJM-J6lXEHRxlHqcDunMLUFPV0KvDC0t9a-cIc" ] } http_version: recorded_at: Thu, 10 Oct 2019 03:08:19 GMT - request: method: post uri: "/authZ/XEJCSSJM-J6lXEHRxlHqcDunMLUFPV0KvDC0t9a-cIc" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIm5vbmNlIjoiX0RaX0pBeVRfdkNUSjByUTF1RWU2dyIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9hdXRoWi9YRUpDU1NKTS1KNmxYRUhSeGxIcWNEdW5NTFVGUFYwS3ZEQzB0OWEtY0ljIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNjcifQ","payload":"","signature":"4L_Nhvr0oXvqotTtHXER38c4cVRG9ZfZABnk-PCMnm-5oys22xkGKq4S4pOaNbC9dgSKCpNVQNC75rcLq8OF_w"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - Q2ZYoMRA-ngVgt9UBu653A Date: - Thu, 10 Oct 2019 03:08:19 GMT Content-Length: - '874' body: encoding: UTF-8 string: |- { "status": "pending", "identifier": { "type": "dns", "value": "example.com" }, "challenges": [ { "type": "http-01", "url": "/chalZ/vVJAA_BVZt6tYPeFCMSJKgDPyLYpVASw6S6ZXoMA_8U", "token": "XVDi-tWOf7DZrkgb80kC0D7b9DaQRygePlnnP6189CE", "status": "pending" }, { "type": "dns-01", "url": "/chalZ/eV39IguLzar50MDBWJXRu8o8ffPvcQeXBMRn12qQpgw", "token": "euxMnb2N-WL15PknqfeyrleZdcbxYfwAno_1-yBtIdY", "status": "pending" }, { "type": "tls-alpn-01", "url": "/chalZ/6iDQKtmlJo7PYISnC-p6j_dbzc27hrLcLFJEZGLFxoc", "token": "9bYvWJr4j2LCztxhOLUrSxdWyzngr-epw2dR06w04Wc", "status": "pending" } ], "expires": "2019-10-10T04:08:19Z" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:19 GMT - request: method: post uri: "/chalZ/vVJAA_BVZt6tYPeFCMSJKgDPyLYpVASw6S6ZXoMA_8U" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIm5vbmNlIjoiUTJaWW9NUkEtbmdWZ3Q5VUJ1NjUzQSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9jaGFsWi92VkpBQV9CVlp0NnRZUGVGQ01TSktnRFB5TFlwVkFTdzZTNlpYb01BXzhVIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNjcifQ","payload":"","signature":"i5GXqBsuGHL0R-bY2jYQ_Hub-10kJIXL8H1cinzx_9bokGeikxgB1PcW1si8bP_Ezxv3mv0j7zpmELUPshq07Q"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Replay-Nonce: - W6zQbLFxBt6jPoL6gsbSsQ Date: - Thu, 10 Oct 2019 03:08:19 GMT Content-Length: - '198' body: encoding: UTF-8 string: |- { "type": "http-01", "url": "/chalZ/vVJAA_BVZt6tYPeFCMSJKgDPyLYpVASw6S6ZXoMA_8U", "token": "XVDi-tWOf7DZrkgb80kC0D7b9DaQRygePlnnP6189CE", "status": "pending" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:19 GMT - request: method: post uri: "/chalZ/vVJAA_BVZt6tYPeFCMSJKgDPyLYpVASw6S6ZXoMA_8U" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIm5vbmNlIjoiVzZ6UWJMRnhCdDZqUG9MNmdzYlNzUSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9jaGFsWi92VkpBQV9CVlp0NnRZUGVGQ01TSktnRFB5TFlwVkFTdzZTNlpYb01BXzhVIiwia2lkIjoiaHR0cHM6Ly8xOTIuMTY4LjU2LjkzOjE0MDAwL215LWFjY291bnQvNjcifQ","payload":"e30","signature":"Baj47lYbJ8MRsY70TUi3jpz6Nq-n4GVN12_rBRfzUSGkFmJndDzdCGLuMFXggSw4CjJK4jIkWMSMtzfVrAu85g"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - </authZ/XEJCSSJM-J6lXEHRxlHqcDunMLUFPV0KvDC0t9a-cIc>;rel="up" - <>;rel="index" Replay-Nonce: - Nwj1HHNZmduOe0BKHBeB9g Date: - Thu, 10 Oct 2019 03:08:19 GMT Content-Length: - '198' body: encoding: UTF-8 string: |- { "type": "http-01", "url": "/chalZ/vVJAA_BVZt6tYPeFCMSJKgDPyLYpVASw6S6ZXoMA_8U", "token": "XVDi-tWOf7DZrkgb80kC0D7b9DaQRygePlnnP6189CE", "status": "pending" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:19 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/cassettes/simpler_identifiers_order.yml000066400000000000000000000147431411343312700246210ustar00rootroot00000000000000--- http_interactions: - request: method: get uri: "" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Date: - Thu, 10 Oct 2019 03:08:20 GMT Content-Length: - '386' body: encoding: UTF-8 string: |- { "keyChange": "/rollover-account-key", "meta": { "termsOfService": "data:text/plain,Do%20what%20thou%20wilt" }, "newAccount": "/sign-me-up", "newNonce": "/nonce-plz", "newOrder": "/order-plz", "revokeCert": "/revoke-cert" } http_version: recorded_at: Thu, 10 Oct 2019 03:08:20 GMT - request: method: head uri: "/nonce-plz" body: encoding: US-ASCII string: '' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Accept: - "*/*" response: status: code: 200 message: OK headers: Cache-Control: - public, max-age=0, no-cache Link: - <>;rel="index" Replay-Nonce: - zXfGZ7qMCxysCz_4Qg-DYA Date: - Thu, 10 Oct 2019 03:08:20 GMT body: encoding: UTF-8 string: '' http_version: recorded_at: Thu, 10 Oct 2019 03:08:20 GMT - request: method: post uri: "/sign-me-up" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoielhmR1o3cU1DeHlzQ3pfNFFnLURZQSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9zaWduLW1lLXVwIiwiandrIjp7ImUiOiJBUUFCIiwia3R5IjoiUlNBIiwibiI6IndsV2ZQcFJwUlRsbUs3anpHYjFRUzRCYnV5RU9zVU83ZlFGbFRMRFRIblVIWG5ld0I3VDFVTXpqNjNFZEJyLXdDQ0lJNEk3ZWptcVNRbmZZeHlObGlDNkIxVEUzTE1WZEFyZG8wSmdHMF9sLUlmSnpnT3pFWVdVRHlPWTY5Mnh4ajdsRVBTVzEzYUpFNTJSVHg2cDRyZmJYYXQ1UEV1bnk2VElxSmV6SVI4YmlCVjdmRG9KcEtSWVdvMElrT1V1MkpfZjJaVmxIZ05ucU5zWnVISEgtYThFNG5YZUM1ZUo4Nm5IbFdINVJFb2k1N1lhbm9ZOFpabU5LSGQxNU9RTEJ0UnZrNGwwTkp2cU5sd3VaX0g3NDVPTl9ET3VPYWZ5NGxucGpOaDJQMklpeWNaZWM4NHNxZ1l6WEt6MjlrMmlPNHVZel8zMG54OVN3bWphT3c1TF91USJ9fQ","payload":"eyJjb250YWN0IjpbIm1haWx0bzppbmZvQGV4YW1wbGUuY29tIl0sInRlcm1zT2ZTZXJ2aWNlQWdyZWVkIjp0cnVlfQ","signature":"V8BzJKt4lURIVcblFYT1w4Rx7CvIoM04NlJSNlXyQqmMUmhJk9BlyWD9J3hna25Wavpki6yMskLmtn7r72lIuuOcbCavAzLSit5ATtusuIg9KymQ0yjjupyaViUd0-xdhmkq8F39GazoCk1QMQpXCT7g_j58uUDIX3tuMcaCR0Rbv-ay0vKvjssdRr96K5CmWeWddqEjNxiLjMXOw5CBTKXe_lrsX-UhUtrsykGjDwbbWVu4IZGSpIPsQWery_Whr1AhZ-0zf6diPAYBJhGyPi7VAo4t6hHT-NQVsnX9G3wo4wmwGVQ-fFQSKzdU2PLk8Lre60nPBmvUKYpzJG7XZw"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-account/68" Replay-Nonce: - bYhTDj52cvycxsqvSYlUYQ Date: - Thu, 10 Oct 2019 03:08:20 GMT Content-Length: - '550' body: encoding: UTF-8 string: |- { "status": "valid", "contact": [ "mailto:info@example.com" ], "orders": "/list-orderz/68", "key": { "kty": "RSA", "n": "wlWfPpRpRTlmK7jzGb1QS4BbuyEOsUO7fQFlTLDTHnUHXnewB7T1UMzj63EdBr-wCCII4I7ejmqSQnfYxyNliC6B1TE3LMVdArdo0JgG0_l-IfJzgOzEYWUDyOY692xxj7lEPSW13aJE52RTx6p4rfbXat5PEuny6TIqJezIR8biBV7fDoJpKRYWo0IkOUu2J_f2ZVlHgNnqNsZuHHH-a8E4nXeC5eJ86nHlWH5REoi57YanoY8ZZmNKHd15OQLBtRvk4l0NJvqNlwuZ_H745ON_DOuOafy4lnpjNh2P2IiycZec84sqgYzXKz29k2iO4uYz_30nx9SwmjaOw5L_uQ", "e": "AQAB" } } http_version: recorded_at: Thu, 10 Oct 2019 03:08:20 GMT - request: method: post uri: "/order-plz" body: encoding: UTF-8 string: '{"protected":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIm5vbmNlIjoiYlloVERqNTJjdnljeHNxdlNZbFVZUSIsInVybCI6Imh0dHBzOi8vMTkyLjE2OC41Ni45MzoxNDAwMC9vcmRlci1wbHoiLCJraWQiOiJodHRwczovLzE5Mi4xNjguNTYuOTM6MTQwMDAvbXktYWNjb3VudC82OCJ9","payload":"eyJpZGVudGlmaWVycyI6W3sidHlwZSI6ImRucyIsInZhbHVlIjoiZXhhbXBsZS5jb20ifV19","signature":"SHqLSudSSQg_y-gYfZ1maiukI4hVThXgc5fWOqZAxwvfdcc0tTdNrwABeGQjL4def9JuHzCDDof2Pg43yhYpKZsUjfv41dKLTSB_Y3Q887cZeIw8wh6l4L44QTpp-trkLN4tC4ZpHpel8Y7yAsOB5-5Yx3QetA4TsSnxXJuVZx-2lJE8D5B81XFwszOJH-ngMnE3ap-WazG1R_DFu7VNl6UEUFH3wZW_YS-WTaE57pCpFBaJZ3CbaYITGRzrA0WmfMUI90vGwVFrhzrywFC191pIcXPqO_2dN8gwPC4yjVwyeMkWYPy7SqpWPPvX3ZfpoYptFPK5jnxodVNjsh7Wuw"}' headers: User-Agent: - Acme::Client v2.0.4 (https://github.com/unixcharles/acme-client) Content-Type: - application/jose+json Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 201 message: Created headers: Cache-Control: - public, max-age=0, no-cache Content-Type: - application/json; charset=utf-8 Link: - <>;rel="index" Location: - "/my-order/YkH7utCEsPA9QutahVZh5Osw9Sg72w0HxJG1nnN04IQ" Replay-Nonce: - QOwgE1D5hYw0laVP8Re8ig Date: - Thu, 10 Oct 2019 03:08:20 GMT Content-Length: - '382' body: encoding: UTF-8 string: |- { "status": "pending", "expires": "2019-10-11T03:08:20Z", "identifiers": [ { "type": "dns", "value": "example.com" } ], "finalize": "/finalize-order/YkH7utCEsPA9QutahVZh5Osw9Sg72w0HxJG1nnN04IQ", "authorizations": [ "/authZ/xtMqT6H0eM9s5PX4NJtzOx4DDBs1zO4wtbxLM-PkZy0" ] } http_version: recorded_at: Thu, 10 Oct 2019 03:08:20 GMT recorded_with: VCR 2.9.3 acme-client-2.0.9/spec/certificate_request_spec.rb000066400000000000000000000124021411343312700222240ustar00rootroot00000000000000require 'spec_helper' describe Acme::Client::CertificateRequest do let(:test_key) { generate_private_key } it 'reads the common name from the subject' do request = Acme::Client::CertificateRequest.new(private_key: test_key, subject: { common_name: 'example.org' }) expect(request.common_name).to eq('example.org') request = Acme::Client::CertificateRequest.new(private_key: test_key, subject: { 'CN' => 'example.org' }) expect(request.common_name).to eq('example.org') end it "doesn't modify the given subject" do subject = { common_name: 'example.org' } original = subject.dup Acme::Client::CertificateRequest.new(private_key: test_key, subject: subject) expect(subject).to eq(original) end it 'normalizes the subject to OpenSSL short names' do subject = Acme::Client::CertificateRequest::SUBJECT_KEYS.each_with_object({}) {|(key, _), hash| hash[key] = 'example' } request = Acme::Client::CertificateRequest.new(private_key: test_key, subject: subject) subject = Acme::Client::CertificateRequest::SUBJECT_KEYS.each_with_object({}) {|(_, short_name), hash| hash[short_name] = 'example' } expect(request.subject).to eq(subject) end it 'sets the subject common name from the parameter' do request = Acme::Client::CertificateRequest.new(common_name: 'example.org', private_key: test_key) expect(request.subject['CN']).to eq('example.org') end it 'adds the common name to the names' do request = Acme::Client::CertificateRequest.new(common_name: 'example.org', private_key: test_key) expect(request.names).to eq(%w(example.org)) end it 'picks a single domain as the common name' do request = Acme::Client::CertificateRequest.new(names: %w(example.org), private_key: test_key) expect(request.common_name).to eq('example.org') expect(request.subject['CN']).to eq('example.org') expect(request.names).to eq(%w(example.org)) end it 'picks the common name from the names' do request = Acme::Client::CertificateRequest.new(names: %w(example.org www.example.org), private_key: test_key) expect(request.common_name).to eq('example.org') expect(request.subject['CN']).to eq('example.org') expect(request.names).to eq(%w(example.org www.example.org)) end it 'expects a domain' do expect { Acme::Client::CertificateRequest.new(private_key: test_key) }.to raise_error(ArgumentError, /No common name/) end it 'disallows arbitrary subject keys' do expect { Acme::Client::CertificateRequest.new( common_name: 'example.org', private_key: test_key, subject: { :milk => 'yes', 'serialNumber' => 123 } ) }.to raise_error(ArgumentError, /Unexpected subject attributes/) end it 'checks consistency of given common names' do expect { Acme::Client::CertificateRequest.new( common_name: 'example.org', private_key: test_key, subject: { common_name: 'example.net' } ) }.to raise_error(ArgumentError, /Conflicting common name/) expect { Acme::Client::CertificateRequest.new( common_name: 'example.org', private_key: test_key, subject: { 'CN' => 'example.net' } ) }.to raise_error(ArgumentError, /Conflicting common name/) end it 'assigns the public key' do request = Acme::Client::CertificateRequest.new(common_name: 'example.org', private_key: test_key) expect(public_key_to_pem(request.csr.public_key)).to eq(public_key_to_pem(test_key)) expect(request.csr.verify(request.csr.public_key)).to be(true) end it 'adds the common name to the subject' do request = Acme::Client::CertificateRequest.new(common_name: 'example.org', private_key: test_key) subject = request.csr.subject.to_a.map { |name, value, _| [name, value] }.to_h expect(subject['CN']).to eq('example.org') end it 'adds other valid attributes to the subject' do subject_keys = Acme::Client::CertificateRequest::SUBJECT_KEYS subject = subject_keys.each_with_object({}) {|(_, short_name), hash| hash[short_name] = 'example' } request = Acme::Client::CertificateRequest.new(private_key: test_key, subject: subject) csr_subject = request.csr.subject.to_a.map { |name, value, _| [name, value] }.to_h expect(csr_subject).to eq(subject) end it 'creates a subjectAltName extension with multiple names' do request = Acme::Client::CertificateRequest.new(names: %w(example.org www.example.org), private_key: test_key) extension = request.csr.attributes.find { |attribute| asn1_dig(attribute).first.value == 'subjectAltName' } expect(extension).not_to be_nil value = asn1_dig(extension).last.value expect(value).to include('example.org') expect(value).to include('www.example.org') end it 'signs the request with the private key' do request = Acme::Client::CertificateRequest.new(common_name: 'example.org', private_key: test_key) expect(verify_csr(request.csr, test_key)).to be(true) end it 'supports ECDSA keys' do ec_key = OpenSSL::PKey::EC.new('secp384r1') ec_key.generate_key request = Acme::Client::CertificateRequest.new(common_name: 'example.org', private_key: ec_key) expect(request.csr.verify(ec_key)).to be(true) end end acme-client-2.0.9/spec/chain_identifier_spec.rb000066400000000000000000000006551411343312700214650ustar00rootroot00000000000000require 'spec_helper' describe Acme::Client::ChainIdentifier do let(:pem) { open('./spec/fixtures/certificate_chain.pem').read } let(:issuer_name) { 'Pebble Root CA' } subject { Acme::Client::ChainIdentifier.new(pem) } it 'matches certificate by name' do expect(subject).to be_a_match_name(issuer_name) end it 'fail non matching certificate name' do expect(subject).not_to be_a_match_name('foo') end end acme-client-2.0.9/spec/challenge_spec.rb000066400000000000000000000040701411343312700201160ustar00rootroot00000000000000require 'spec_helper' describe Acme::Client::Resources::Challenges do let(:private_key) { generate_private_key } let(:client) do client = Acme::Client.new(private_key: private_key, directory: DIRECTORY_URL) client.new_account(contact: 'mailto:info@example.com', terms_of_service_agreed: true) client end let(:order) do client.new_order(identifiers: [{ type: 'dns', value: 'example.com' }]) end let(:authorization) { client.authorization(url: order.authorization_urls.first) } let(:http01) { authorization.http01 } context 'reload', vcr: { cassette_name: 'challenge_reload' } do it 'reload reload the challenge' do expect { http01.reload }.not_to raise_error expect(http01.url).not_to be_nil end end context 'key_authorization', vcr: { cassette_name: 'challenge_key_authorization' } do it 'returns a key authorization' do token, jwk_thumbprint = http01.key_authorization.split('.') expect(token).to eq(http01.token) expect(jwk_thumbprint).to be_a(String) end end context 'request_validation' do it 'successfully verify the challenge', vcr: { cassette_name: 'challenge_verify_success' } do serve_once(http01.file_content) do expect { expect(http01.request_validation).to be(true) }.to_not raise_error expect { retry_until(condition: lambda { http01.status != 'pending' }) do http01.reload end }.to_not raise_error expect(http01.status).to eq('valid') end end it 'fail to verify the challenge and return the status', vcr: { cassette_name: 'challenge_verify_failure' } do serve_once("#{http01.file_content}-oops") do expect { expect(http01.request_validation).to be(true) }.to_not raise_error expect { retry_until(condition: lambda { http01.status != 'pending' }) do http01.reload end }.to_not raise_error expect(http01.status).to eq('invalid') expect(http01.error).to_not be_empty end end end end acme-client-2.0.9/spec/client_spec.rb000066400000000000000000000337001411343312700174540ustar00rootroot00000000000000require 'spec_helper' describe Acme::Client do let(:private_key) { generate_private_key } let(:csr) { Acme::Client::CertificateRequest.new(names: %w[example.com]) } let(:order) do client.new_order(identifiers: [{ type: 'dns', value: 'example.com' }]) end let(:unregistered_client) { Acme::Client.new(private_key: private_key, directory: DIRECTORY_URL) } let(:client) do client = Acme::Client.new(private_key: private_key, directory: DIRECTORY_URL) client.new_account(contact: 'mailto:info@example.com', terms_of_service_agreed: true) client end context 'nonce' do it 'fetch a new nonce and add it to nonces', vcr: { cassette_name: 'get_nonce' } do expect { unregistered_client.get_nonce }.to change { unregistered_client.nonces.empty? }.from(true).to(false) end it 'raise when nonce fail', vcr: { cassette_name: 'nonce_fail' } do expect { unregistered_client.new_account(contact: 'mailto:info@example.com') }.to raise_error(Acme::Client::Error::BadNonce) end it 'retry on bad nonce with bad_nonce_retry option', vcr: { cassette_name: 'nonce_retry' } do client = Acme::Client.new(private_key: private_key, bad_nonce_retry: 10, directory: DIRECTORY_URL) client.nonces << 'invalid_nonce' client.new_account(contact: 'mailto:info@example.com', terms_of_service_agreed: true) end end context 'meta', vcr: { cassette_name: 'client_meta' } do it { expect(client.meta).to be_a(Hash) } it { expect(client.terms_of_service).to be_a(String) } it { expect(client.external_account_required).to be_nil } end context 'account operation' do context 'new account' do it 'accept the terms of service', vcr: { cassette_name: 'new_account_agree_terms' } do account = unregistered_client.new_account(contact: 'mailto:info@example.com', terms_of_service_agreed: true) expect(account.status).to eq('valid') end it 'refuse the terms of service', vcr: { cassette_name: 'new_account_refuse_terms' } do expect { unregistered_client.new_account(contact: 'mailto:info@example.com', terms_of_service_agreed: false) }.to raise_error(Acme::Client::Error, 'Provided account did not agree to the terms of service') end end context 'account' do let(:kid) { client.kid } it 'load account when kid is known', vcr: { cassette_name: 'load_account_valid_kid' } do client = Acme::Client.new( private_key: private_key, directory: DIRECTORY_URL, kid: kid ) expect(client.account.status).to eq('valid') end it 'load account from private key if the kid is unknown', vcr: { cassette_name: 'load_account_unkown_kid' } do account = unregistered_client.new_account(contact: 'mailto:info@example.com', terms_of_service_agreed: true) client = Acme::Client.new( private_key: private_key, directory: DIRECTORY_URL ) expect(client.account.status).to eq('valid') expect(client.account.kid).to eq(account.kid) end end context 'account update' do it 'updates account contact information', vcr: { cassette_name: 'account_contact_update' } do expect( client.account.contact ).to eq(['mailto:info@example.com']) client.account_update(contact: 'mailto:updated@example.com') expect( client.account.contact ).to eq(['mailto:updated@example.com']) end end context 'account deactivate' do it 'updates account contact information', vcr: { cassette_name: 'account_contact_deactivate' } do deactivated_account = client.account_deactivate expect( deactivated_account.status ).to eq('deactivated') end end context 'account key change' do it 'changes the key', vcr: { cassette_name: 'account_key_change' } do client.account_key_change(new_private_key: generate_private_key) expect(client.account.status).to eq('valid') end end end context 'order operation' do context 'new order' do it 'creates a new order', vcr: { cassette_name: 'new_order' } do order = client.new_order(identifiers: [{ type: 'dns', value: 'example.com' }]) expect(order).to be_a(Acme::Client::Resources::Order) end it 'creates a new order', vcr: { cassette_name: 'simpler_identifiers_order' } do order = client.new_order(identifiers: 'example.com') expect(order).to be_a(Acme::Client::Resources::Order) end end context 'order' do let(:order_url) { order.url } it 'fetch orders from a url', vcr: { cassette_name: 'fetch_order' } do order = client.order(url: order_url) expect(order).to be_a(Acme::Client::Resources::Order) end it 'fail to fetch order from an invalid url', vcr: { cassette_name: 'fail_fetch_order' } do expect { client.order(url: "#{order_url}err") }.to raise_error(Acme::Client::Error::NotFound) end end context 'authorization' do it 'fetch authorization from a url', vcr: { cassette_name: 'fetch_authorization' } do authorization = client.authorization(url: order.authorization_urls.first) expect(authorization).to be_a(Acme::Client::Resources::Authorization) end end context 'deactivate_authorization' do it 'fetch authorization from a url', vcr: { cassette_name: 'deactivate_authorization' } do authorization = client.authorization(url: order.authorization_urls.first) authorization = client.deactivate_authorization(url: authorization.url) expect(authorization).to be_a(Acme::Client::Resources::Authorization) expect(authorization.status).to eq('deactivated') end end context 'challenges' do it 'fetch challenges from a url', vcr: { cassette_name: 'fetch_challenge' } do authorization = client.authorization(url: order.authorization_urls.first) challenge = client.challenge(url: authorization.http01.url) expect(challenge).to be_kind_of(Acme::Client::Resources::Challenges::Base) end end context 'request_challenge_validation' do it 'request verification from a url', vcr: { cassette_name: 'request_validation' } do authorization = client.authorization(url: order.authorization_urls.first) challenge = client.challenge(url: authorization.http01.url) challenge = client.request_challenge_validation(url: challenge.url) expect(challenge).to be_kind_of(Acme::Client::Resources::Challenges::Base) expect(challenge.status).to eq('pending') end it 'request verification from a url', vcr: { cassette_name: 'request_validation' } do authorization = client.authorization(url: order.authorization_urls.first) challenge = client.challenge(url: authorization.http01.url) challenge = client.request_challenge_validation(url: challenge.url) expect(challenge).to be_kind_of(Acme::Client::Resources::Challenges::Base) expect(challenge.status).to eq('pending') end end context 'finalize' do let(:order_url) { order.url } let(:finalize_url) { order.finalize_url } let(:authorization) { client.authorization(url: order.authorization_urls.first) } it 'finalize an order raise on csr mismatch', vcr: { cassette_name: 'finalize_csr_mismatch' } do expect { client.finalize(url: finalize_url, csr: csr) }.to raise_error(Acme::Client::Error::Unauthorized) end it 'finalize an order raise on incomplete authorization', vcr: { cassette_name: 'finalize_incomplete_challenge' } do expect { client.finalize(url: finalize_url, csr: csr) }.to raise_error(Acme::Client::Error::Unauthorized) end it 'finalize an order successfully when authorization challenges are completed', vcr: { cassette_name: 'finalize_succeed' } do challenge = authorization.http01 serve_once(challenge.file_content) do client.request_challenge_validation(url: challenge.url) end order = client.finalize(url: finalize_url, csr: csr) finalized_order = client.order(url: order.url) expect(finalized_order.certificate_url).not_to be_nil end end context 'certificate' do let(:finalize_url) { order.finalize_url } let(:authorization) { client.authorization(url: order.authorization_urls.first) } let(:challenge) { authorization.http01 } it 'download a certificate', vcr: { cassette_name: 'certificate_download' } do serve_once(challenge.file_content) do client.request_challenge_validation(url: challenge.url) end order = client.finalize(url: finalize_url, csr: csr) finalized_order = client.order(url: order.url) certificate = client.certificate(url: finalized_order.certificate_url) expect { OpenSSL::X509::Certificate.new(certificate) }.not_to raise_error end context 'preferred chain' do context 'without alternates link' do it 'download a certificate with a preferred match', vcr: { cassette_name: 'certificate_download' } do serve_once(challenge.file_content) do client.request_challenge_validation(url: challenge.url) end order = client.finalize(url: finalize_url, csr: csr) finalized_order = client.order(url: order.url) certificate = client.certificate(url: finalized_order.certificate_url, force_chain: 'Pebble Root CA') expect { OpenSSL::X509::Certificate.new(certificate) }.not_to raise_error end it 'download a certificate and fail preferred match', vcr: { cassette_name: 'certificate_download' } do serve_once(challenge.file_content) do client.request_challenge_validation(url: challenge.url) end order = client.finalize(url: finalize_url, csr: csr) finalized_order = client.order(url: order.url) expect { client.certificate(url: finalized_order.certificate_url, force_chain: 'foobar') }.to raise_error(Acme::Client::Error::ForcedChainNotFound) end end context 'with alternates link' do it 'download a certificate with a preferred match', vcr: { cassette_name: 'certificate_download_with_alternative' } do serve_once(challenge.file_content) do client.request_challenge_validation(url: challenge.url) end order = client.finalize(url: finalize_url, csr: csr) finalized_order = client.order(url: order.url) certificate = client.certificate(url: finalized_order.certificate_url, force_chain: 'Pebble Root CA 769220') expect { OpenSSL::X509::Certificate.new(certificate) }.not_to raise_error expect(OpenSSL::X509::Certificate.new(certificate).issuer.to_s).to eq('/CN=Pebble Intermediate CA 7c13ed') end it 'download a certificate and fail preferred match', vcr: { cassette_name: 'certificate_download_with_alternative' } do serve_once(challenge.file_content) do client.request_challenge_validation(url: challenge.url) end order = client.finalize(url: finalize_url, csr: csr) finalized_order = client.order(url: order.url) expect { client.certificate(url: finalized_order.certificate_url, force_chain: 'foobar') }.to raise_error(Acme::Client::Error::ForcedChainNotFound) end end end end context 'revoke' do let(:finalize_url) { order.finalize_url } let(:authorization) { client.authorization(url: order.authorization_urls.first) } let(:challenge) { authorization.http01 } let(:certificate) do serve_once(challenge.file_content) do client.request_challenge_validation(url: challenge.url) end order = client.finalize(url: finalize_url, csr: csr) finalized_order = client.order(url: order.url) client.certificate(url: finalized_order.certificate_url) end # TODO: find a way to record fixtures for this, unsupported by pebble at the moment. xit 'revoke a PEM string certificate', vcr: { cassette_name: 'revoke_pem_sucess' } do serve_once(challenge.file_content) do client.request_challenge_validation(url: challenge.url) end order = client.finalize(url: finalize_url, csr: csr) finalized_order = client.order(url: order.url) certificate = client.certificate(url: finalized_order.certificate_url) client.revoke(certificate: certificate) end end end context 'prepare_order_identifiers' do it 'accepts a single dns string' do expect(unregistered_client.send(:prepare_order_identifiers, 'example.com')) .to eq([{ type: 'dns', value: 'example.com' }]) end it 'accepts an array of dns strings' do expect(unregistered_client.send(:prepare_order_identifiers, %w(example.com foo.example.com))) .to eq([{ type: 'dns', value: 'example.com' }, { type: 'dns', value: 'foo.example.com' }]) end it 'accepts a single identifier hash' do expect(unregistered_client.send(:prepare_order_identifiers, type: 'ip', value: '192.168.1.1')) .to eq([{ type: 'ip', value: '192.168.1.1' }]) end it 'accepts an array of identifier hashes' do identifiers = [{ type: 'ip', value: '192.168.1.1' }, { type: 'dns', value: 'example.com' }] expect(unregistered_client.send(:prepare_order_identifiers, identifiers)) .to eq([{ type: 'ip', value: '192.168.1.1' }, { type: 'dns', value: 'example.com' }]) end it 'accepts a combination of dns strings and identifier hashes' do expect(unregistered_client.send(:prepare_order_identifiers, [{ type: 'ip', value: '192.168.1.1' }, 'example.com'])) .to eq([{ type: 'ip', value: '192.168.1.1' }, { type: 'dns', value: 'example.com' }]) end end end acme-client-2.0.9/spec/directory_spec.rb000066400000000000000000000021201411343312700201720ustar00rootroot00000000000000require 'spec_helper' describe Acme::Client::Resources::Directory do let(:directory) { Acme::Client::Resources::Directory.new(DIRECTORY_URL, {}) } context 'endpoint_for', vcr: { cassette_name: 'directory_endpoint_for' } do it { expect(directory.endpoint_for(:new_nonce)).to be_a_kind_of(URI) } it { expect(directory.endpoint_for(:new_account)).to be_a_kind_of(URI) } it { expect(directory.endpoint_for(:new_order)).to be_a_kind_of(URI) } it { expect(directory.endpoint_for(:revoke_certificate)).to be_a_kind_of(URI) } it { expect(directory.endpoint_for(:key_change)).to be_a_kind_of(URI) } context 'when rate limited', vcr: { cassette_name: 'directory_ratelimit' } do it do expect { directory.endpoint_for(:new_order) }.to raise_error(Acme::Client::Error::RateLimited) end end end context 'meta', vcr: { cassette_name: 'directory_meta' } do it { expect(directory.meta).to be_a(Hash) } it { expect(directory.terms_of_service).to be_a(String) } it { expect(directory.external_account_required).to be_nil } end end acme-client-2.0.9/spec/dns01_spec.rb000066400000000000000000000011641411343312700171220ustar00rootroot00000000000000# frozen_string_literal: true require 'spec_helper' describe Acme::Client::Resources::Challenges::DNS01 do let(:private_key) { generate_private_key } let(:client) do Acme::Client.new(private_key: private_key, directory: DIRECTORY_URL) end let(:attributes) do { status: 'pending', url: 'https://example.com/foo/bar', token: 'example_token' } end let(:dns01) do Acme::Client::Resources::Challenges::DNS01.new(client, **attributes) end it { expect(dns01.record_name).to eq('_acme-challenge') } it { expect(dns01.record_type).to eq('TXT') } it { expect(dns01.record_content).to be_a(String) } end acme-client-2.0.9/spec/fixtures/000077500000000000000000000000001411343312700165055ustar00rootroot00000000000000acme-client-2.0.9/spec/fixtures/certificate_chain.pem000066400000000000000000000045741411343312700226460ustar00rootroot00000000000000-----BEGIN CERTIFICATE----- MIIDWTCCAkGgAwIBAgIIa2EsI7kDF8kwDQYJKoZIhvcNAQELBQAwKDEmMCQGA1UE AxMdUGViYmxlIEludGVybWVkaWF0ZSBDQSA2Nzk0NDAwHhcNMTkxMDEwMDMwODEx WhcNMjQxMDEwMDMwODExWjAWMRQwEgYDVQQDEwtleGFtcGxlLmNvbTCCASIwDQYJ KoZIhvcNAQEBBQADggEPADCCAQoCggEBALvgcRqd814+yUb/7ZOHchX0xuiBiH89 YhDiBAEFuW5gOxYXAAVY1b9qAdrHnPEBtvEGqlvMnvDP7hkar7JA69rT6kbt9Psz 2gARJKrprx3d3Oep8IzS1HFEIqaYddkDoFdSwNpKIy43qmJGpF+ADMwkkmQ0+ICC Ri3rlidFlW41UT/cIDMbZqgtN51PFW0RAA1OI5NHKCtWCqsI/a7lLAT4u6u0hIK7 zUVr/fPKeT4pkkusVyklEETSW1y+SwLeflOn7SPEBMPTizKr44Et0l4PXva+lfvw gLbiDg6xqgPwmiq3yt7BzHx/aR/Kc9jwtsImCthleDydDNEoO5WhaqECAwEAAaOB mDCBlTAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUF BwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFDDuGNC3NaAvNCEXcSEBbLaz/NDg MB8GA1UdIwQYMBaAFIiN1hLypsnm8KWVi3ItK0Unjae0MBYGA1UdEQQPMA2CC2V4 YW1wbGUuY29tMA0GCSqGSIb3DQEBCwUAA4IBAQBmqbvbeCWhmTJrtt+q5Zlz5C9z ftpuUIMhAo8iTCOlXASlQ1G/6JmUv1SY/tp93rGIzFPU/wYKZsbw/qzu4eTmS6DZ q3U1cvb2zjUH7aRAl7etu1H0KVQG4gDw961zM4eUuHSybIgp1FKo+J6X3hHHVM6u sUAgYvLyyrVYpZxMKP/UCvbA4hZ/sbLJGfI2wzU/FKQjt41W3b+zpEEw8VcFkOfs eQ5YeUVIHAZ3HFNz0QB/2RTmKLtjZ7UpnmxZUeVMlJXKrYjhAcCBR8vb72BDdaWk fA/1pSyT7mbXyuxDJCvrwzzdHWw7PL2wzaCbultcuDn4oT15Hih28HjorEtU -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDTjCCAjagAwIBAgIIH8F+H5a3JeIwDQYJKoZIhvcNAQELBQAwIDEeMBwGA1UE AxMVUGViYmxlIFJvb3QgQ0EgM2E1OTY4MB4XDTE5MTAxMDAzMDU0MloXDTQ5MTAx MDAzMDU0MlowKDEmMCQGA1UEAxMdUGViYmxlIEludGVybWVkaWF0ZSBDQSA2Nzk0 NDAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC1TkMbn1tCv0QXFen5 Was596VScGyD0ifqoq4/kb4WQ/debH8coZzz9pVKTPbZySY/X1ltStYBI/2GdIZg t/uw9hOW7ko2Agy4bcd6tD9S+eZK4F3rH1EJutUjuq9WLmmckT8PJEbToazvDTL2 v9YGcf56v0SCuCYQshNlx5ECKb7kWWqy5D6OzJPB24BRFX7MTD8ckkdhQmzafyI7 vVkDrHFUZslx1BUQ6lfJEy0mi/UmTgxrjPwTfe5UWF6N3AZDEUng8eWAnKW9px2g 5qTUShGMZG6E6OkFHX6rmT3MVuO+rWVpyW1zKbWxvlcAyyBR91Ju6tsJFF/1Y9t+ +XHPAgMBAAGjgYMwgYAwDgYDVR0PAQH/BAQDAgKEMB0GA1UdJQQWMBQGCCsGAQUF BwMBBggrBgEFBQcDAjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSIjdYS8qbJ 5vCllYtyLStFJ42ntDAfBgNVHSMEGDAWgBQECikuQVoCg4iOTz+f+0K8SqRdsDAN BgkqhkiG9w0BAQsFAAOCAQEAeyRyz24bmQqWGYXkM02ZWHlom1FNXVtfNOlzgzjC 8sUbFYJDaXefS7x1KJwGparNWmn0jopBrSjOJLCDDphqk1DcS2YPu+7CcyodXyGw CxRSe7gYGx6I0Z/wReeb5rscJ21kJK30Tt3z2hLXWBkxfdcHit3JNLn3HA5HQRph HUr3EUzoFHfNCBecY8lWkmLeN39I0MMCis49DTact6M1jT+q1c+MzjuWO+Bst6mr 6RebdTn4monMOHvmbaVR7+klY05dMjatBF5gV7sf8mPJwUZP5NnEcTLe6zgb+dh4 kDc7qJ6UvkuoDJmbHeSd27GdCJfK+nwc49UG/Fmd8+Zeyg== -----END CERTIFICATE----- acme-client-2.0.9/spec/fixtures/keystash.yml000066400000000000000000002622051411343312700210720ustar00rootroot00000000000000--- - | -----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEAw7/0NxjZLA+ZZtadoRZjPadLgCia+hhpFesxEkw8YLKo8KHz IgxFr7FqWuz0BVmFSk8uR6PTWCsE7IwiWgl0b4f3Jo4hlwR6VqqjS4ydz5xKow49 AJ7MHJ68HajcTRNx+F3PMbFmzTVNUxrH+YrjAdaPAzhmDGwQHlA8CKfOJblNktqZ jxQ/et6ig8/YyuquobX7j+PL8YRtHvBaFQJezyjWIwqAajWSF5ABKt60/3I7YQjB /xdp3nbdQJLVwxtU3+zUkwN4FEfwryH1Bv3p8jR5EDZ+HiUoXg9X3G6XQJISbeyO N6sQcm9FNjSxhRsNDASPsHNRfrr5AoSk7pEsPwIDAQABAoIBAQC5+tRSzL75R9Dd jiaxeA3N8/adyvaDi1G8S3qSAfCThutPxO61eKd058E+pkaqFoW3NkeoNRSFfknt XK7+kGEZ3jqJXRy42L5LPVBsZStCpyGajdqTjkwrHP1pyJeWe1UbPjWu5vffHDdd L+KzSqungWzbCGicgMdHpb+EEbqgxyLTUP6IPgfAvLXlVLEYIqAXoWdR/OhxnxYo QmMcAQSnLuyYDwZrm3vVhN4roeTUrJfRa3eDpSTWf06/tzMqvpSvdl0arigUFvec hZCZkDJ/Zp970fixV5hw2DPC2UKTn2cY6YqMP+Vy1YLbeh0kBLrOTKnNUNAKKs2G sqorHWSBAoGBAP8dryKuqFFwn2wPtrI7N9zi98yZIp3XQuPosGUl21z4Mu9c9LsM S6QlhevmFUnS1cEWPAKdy3BlQ/gwNG7tSqQNxSd6zcfyiBWBLSf8E76E+AP7TIrm kSvcYEmyidTQiX+cW/8yOa4f0IDtauV1KZTp41ccp/lz/cGyA72up0qfAoGBAMRt mwYFpNLFJiFvlvlVJSwz8cC7UcJymoHnkFIWqY7Czujwx4En/1PUc29IDyd5Rk8h d3+EcDGi9Bm37LfSWKHUokrBBLGLjlLGGP437mM+n/MNjoTQBOTyTOn0U3+Gcup0 rW5ceJamSHhJB+0LF6LUe/NoRtxsvjhzhgn7zlphAoGAS7aJlad0OMdN6Qo41GiS ybFqjYQdK+8I4Q7b2wkDM3JN25Ag6apagJrKRhqA0uoJmkZ5BOXDzNWg+HWF+i3e axXTH0Zo8CBgltFBj45WZcKcwMHCE68eAoBi6zxbf5dsVz0WaISFbdHvVXQgt3yw HIvVdrMAfx4Xf3bPeWnuKE0CgYEAruMfeVchDv+1GWPvOYMTm62L+xtMiiHbavmv R0ciJBdSfZeTKW1hKVQoitXPmEejz+RuLrzN34PEbfmR64B+pWdaL9B2y1UDnLL/ oahOuVISuyZA1AMZuHX7APomNY6RVioYGACA5TCbqWzsf6K2oqUozujy3mJ7YmuI 1e66JUECgYAsNDhGD0Zp4ujNvsOi90MxtRXcd40VkQ0XGmFqxOPgJtstl7zmBYAo FApFcvQIApb9rpB2rrDKF8YzDdJ5sb8fqIkVFPEtn6Y2aPv6NiUFBYVn0v8eYZpB 1lqA86uKOk55IccoUwKrOsuyK24XFBP+DdITL74sX8q+NnMc5af6/Q== -----END RSA PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEAoGSnQPPrPQEj1KJoMv8jm+dw2RECiTj9vxYgPvGZSp/o9Bf7 G3zTV1Aa2uMgXIO44bubD5Rrb35Ht/1ymBDlzfXfLXMB/YKDN1XSyytqFTpQfAMl CsEAKm3h9ClS0f2EXgeLZNH/X/NLbxSHQXAZF5Bq7osVPynOEy4zvnJs9Q10oYgD S0OzNH9Mx1h6ayiPRzp8a/hK1zLQWrgj22X6c0Ou0mDGkUQipMzygl7JCft8pQWE Re4JJEajoxSofUMmXdveJpzabenTEHZYLi1SqgBiUOPN80ed5HrN097dEvXwxTEo jjtj+fi1fiXungsXlpHTYtESRXnowucHMTdMdQIDAQABAoIBAHvZXOCluDYx5CXz hfwi0K84xgWGweuNqzna7ulLiu95jNq2jbpK57Ia87GjAcEOITuErpYYJ+E+pEhp Fwxet+QSf9NLY/UJyyJ2Tb999XsQvUcU8oxcPTGGCZyMMBxf4s7sinE+SjAf4FaU hmA8G9P7OuaZVL2iHTLoUSI0nveUxFKC4Trx5n941beIeenj46NSZzloHcHHW4Qd rqtCqYAceguC17Y5+CiLfz+LJt4TV6l9kUger0Yy8JR+s/7wYN3JfO1awfoUQs80 Rsx/tZ2CCMYK29tS8mB+OQlpO8v93Z8OVR9vZoWqW8DxDeb3NYhmiYQzGhmkNnQn FgxaPV0CgYEAy64SCZvg61wMKnuJI1lZ1aMyceU2Xa+JMa+c9FXU5CzVbPMv06T8 qZ8t2pQlT0x31ES488r8lbZcyLKJnosVzEa0yGAVQHrpa9gNimab7aN8E9apVYLr AnV3YQ7UyQd9AAuOroYYCOEyN6g3pxx/305M68o0qiVqq9WYjZxNuoMCgYEAyZgO wIbYFOOT0BLjMERM352yldYWdToM+lyRR3Hukc/XuioyzJ9d8m4nJ9xIteX0A8Yu kmylrvTqkx9zq3mVd8Oze6pVZr1sOMNdH4FjzeNTGSmZJW2mtwHCwCppO6oC8jAB aLTkodQT3mBGQevIayaAWyFNJjC2IxcDdlJVC6cCgYAjeFPx0nCP7D6+IzdVrZjE aKA/T3BxTkFxIqkNr+jcN6aPS6Z3kBLkIzFkEEqTDbkMgU9IPYBRPinYVac7sfMA 2QtgncL1sLH3su9gu8/JyZ+xAMAKgTsV+YjpoSCTRbeSC3E0mWuUGEubf7L5ajAm nkctBNC5FL0H4bGob6DlqwKBgFiWME1cNBIh22+BDULFkL5nLvX3CRFkfBV8nf62 Sy7aFaNiLcaLdZ4115EFlRIRxcPuz8JaaghS6c3S8WJ14D+ryPBb7oFiVe8vsnlI w5HTBk41YG35HFypMmp9eJbWY8sHW2cmrp2Kc1yyE82eDgk/9wGUxbE1kKQk1cml 7mdbAoGBALk67YIlsGcpabQ1T3PJI70QKj+JbNgC6nE9fnpXO49huiARmlPJ2lPn 12QthP4PL6jGTCm0ZbcDkqHIdRZL90AZ+mU1/Utvcylx+jH82F8dOszwyIbdP1pg Crqef7HMiGqjffUq74qMR69SE4YSdt9Hsmp4JUTnnUotKffTKZ+R -----END RSA PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MIGkAgEBBDB9RvtH/31P9rHXDuuwxc4GXcyp1biI7O0GxItdsgm1rBaDeS0/sYwp BeTQed/Wx12gBwYFK4EEACKhZANiAASm3yqhZ5J4PGzQw/wwuePCpTFf9AL7lSfT KDrDi+lSYDtOoL100eFMPBeuqoK/OdFsJmmW5mzhhxckwIjRu2ybe+vKOr9EOO15 PvQpc9MuO7oPuFDuPg1cvjj+hLbKKFY= -----END EC PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEpQIBAAKCAQEAnEZmqyOXyxbM1vv0lah+pB2Idc15wm36mjrxO2h/aAC8OhEw QXY9JMhesOAR1MYIaolGPFD+Rc6UxxISTbP7iIQ15J/7lC6T8V0wW2WIshAJNooS deppriszUwsoqNFI4sFpHrK6qM2jaGA6yc8pdGMKTV1NFkRP7wndgsEGC6D3P80X utOKjDFEfLKvlptAz9WSH6cE8GyGaasxVruSft2MJHIPVFcgCjdc4oJOW4uUDwm2 TVn1RlU154lafr9cItxrcUnvgyKhvdJ0yu7EfjzugE0IHgI5F+qh46iJxQ/5tMUe nS3b/RJg7nJ75XBvAbvORTny08aMYb8dE7kW/QIDAQABAoIBAQCTVAfMxjR/wZIC B+zQ/tXNsQ4KSVnGBFsi9fig0mZyzWams7ezr137hG9I/yWwW7ZpgdtWV+EwPI6k kpPw74JudH4+eNj8HWFaRkmlkLZrcJTO9yJqSkGxcobjfnypkwzMwhxxVXyGUcAB Ud96jLR/RjPbNd/L40EckUdk0sb5RCFAieec8N69Og0HngdV3x6VAAU61wuKSKHz VutR8TbKRkkkbg/Z3cFqNRcOaoEyNbmXkJjMJaFJfDfI4+cp5KHPj1Y2bh9tcays xcky3BbqMcWxUHBbvJm1FCoP2hc7Ro3JNj7gm9j9dhQ2tt3OJH3FWF6sKYjhtAg9 dnQToxidAoGBAMveMqenOKDf5LA48itfHk9bRCmJ/V4Rk7TPtRbEKV2jd2MwSX/i ScQvnIsoyeyrtf2XP+LSM+CA1JATrdRQIwTcTj9VT9tjO/w4H6/zkP7c75YQsn+Q wZhD0cLD3PSq6Fz5XWWkCKApIjbQVvLycuqRZkNFm8EwV+uveR3gLEf/AoGBAMQ8 oH2dHDNc7uRETYdtpQILhrJnbfO/+2cajFUdf0OShk2A/NV4IuYwliYGZls2Px75 pmpDvL7tlF12bvRTseq1nU0BNHjeeetKh1Vxepgr8hzFR8QlRAUUVCRwZ4s3+LZ7 +DX54DXgbiIvEPApR7Fe2kGJt3S+co0/1X9HE8EDAoGAdMbedTJQObaGJHs6HKXr ksFQlgq42z1uQlAIBvZuS3jrViG+uEZCwuIS5ZODttHU+WG98os9tAeXur/K/qa4 qHwZRiX0DFMXdS4g2ITINXUQuADwfinI+xM+ADZ5RpzvZPJiEWqYlkV5l7RXWeqO 8NZAoaApy8uJUTO+SOKz+rkCgYEAhkLQr4DZtY6k58qPnNP4rJCERPWc9cNpV16D mwyGcQ4EE2zoD4mVnxao9DU2vLs9royyPkxADAVymAua2FGXDfXaPMBRTU0x7zjb pSrx7MFMckDL3Dh+9Fa3RwMc5NSTtw7UgOGIdHQsBflbxmUH5yP1gheeTCKtL1T4 Vo+jxU8CgYEAvdJ48Lu3FA+iiFNFCQtmwiqCQPbP8Rcwa4XHh7Z08GoNcoLOzALP DT041NwNbDpJ/xWG0RgW4G2EY/aZ1jnCWxmq9PWH394BhnjIV9Ey3MXklJ1QhBY6 hnNbgErcP8kw2SL/JoWVFipO5HsJHkcL3rzUkIhk7t9A7OMG46fBI/c= -----END RSA PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MIGkAgEBBDCUheWlp9sIQi3A0wStI3GO9dVVZu37SmysdUqVI266RRZUn7pXbJTV 8FjyYTdRs7SgBwYFK4EEACKhZANiAAR17vBot+i4eCTiLYa9chlM8J7AgQ286EDP NTwtNB3tGseMmKR+APX7CKMBsTz3c0KQ++TQMdwcigVIV8uKIQq5gtvk/o/wReHV K9epwaEVu+5Mfs2Gv3LnVKmr4KQzRAM= -----END EC PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEA49bzmBNMog1WlIUHQ1viC42TkHMzktDwG0BOfOQix5Fj6iF8 XLUxDL1LQdUbUkAu3gBBOej9CTPYx5Yk6zZ0O2fclzyl+sAfuuaHHmY1wl3z5hk3 8LSlYeyZRqNbYEFrmCvHOWsWDKbYKSv988xk6M8dwCH/W7QOy6In5etbjrDiNxEL Cj636ZMO/4xf6wpPE2LWItPCIyWuCEUrm7QtpAmzH6A7m6Wd5LHVq9EWs2sy6BkV OUYxuS76c6MlVdZgPzl6TDEiQGfek93i/TGQMvxfOpDnnnS1nS17n44JTJyYOyXp S5YxxMvSNS4YPavJPmjTk9Z92DN8x1tIWXAKhwIDAQABAoIBAHFWZzy6NP/T9MLS 3gcS+QJYPhS4Sep5x0c3GRQlhGuUFojMeYnAlJLKw1oPQZUL2oSSyd+d1+mxAeBe /ySGpRE8HE6bW9G9qssVjBeCLrHufLp0xxAVPMPWp3StJHJgeL5s4KDedUx73sG0 YZLalUP+a8U85ENg8Y84rfJAvv3ebXrPMRRs+EevLYFyUk2gO9D/80nbPBZM6Qut UrmAMyksdgxWgLTAF0lJbN9al4bpJthRq0kznVVmR0GosEJnJrMBE4Vu3aihO/NH 2ZJyB7cwwvPex3VZmEppJIuWoNVG0s9BRDXi5reWVpGjUKlU3xTEdpBd0IHSQK5b B7nfm8ECgYEA+EDkgC4n6k77Kuv/M2tk22Qk13ykHIUvD0Qvr9RlGEwaKQ1izUX0 OTOOpv/HdY25awdt0BIIGRE13MQrRDTbaFm3yWUorea/TShwB3w4O2iAEbvclpd9 1fVdc0l7o82Ru/LF8oKz9TZXttEin4BMrQqru9ftfAEmi7VBpZ1Gh6ECgYEA6vL9 CxwuUuErDbKbCRWL84eStJf0B/Mv0LINODF7wk7achtgP6xOzf3Du9KjD5DAGQug SZ1SWgM27wa30rf/LS63qEK9VCaoPdVYcdyNm+zaL7KQg6jD3dNqDV8t7pQU/1Xz hl/rEN56Z0sfL9z/TmHuRTuc3L9ii8CyAV3RwScCgYEA7UDPYDU8TnCnGBEs905W uFmP4CUtjlg2bmejD250I3FvuvYhC78kNZqxZaajUBRfNQuHhkgFVzece107YFcH rUW5II89/ly9TRctYen0r8oiQ1B/86faSiXR5sE+mYB4G+BcD3WcWOhTkdNzPG5Y WTQOhlpJi65p0TEsCQQzCKECgYAFIyUHTilxJH1FgmdDbpYt0AQUMNJkLhwYixwg 42waVpEON60GF2VtuaPDApsQJxEcOxXZJjh7wWA9H797Owy4VzIq2rK7GVFKcNTL QJBUHXyz2EqypkkKG6pQ+ojNk61V2/JEOOqx5rt0cL8Q09s9QoTsPJ50cTbdaWw6 /WsttwKBgQDZQSq0HKiLzTjbefkKxQ1eAouatiqxDQAmQhw4yio+YU4pUQmcxb8m cS5zHvD7U1rmnz8+k2W7uiru67gf5NseKTegH5gI+b657ZVTiE38xvuxUR+DcpMs KkIn4a1HJ0HBD6mFtbKjTJNdRDlTN63DzXumaBQLNG0XJZ+D3LjnKg== -----END RSA PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEAySHExcVBCcJG8ZtKEa0kXB4Pld/pWkqdwB8zanA8fFLVQekm ScnQLMiv4lZZgd93M6tyTpdMbwGUulJ87jk9Il0OnV9x0RJxjsbnZDx5iegiUy1j LPoLefvjF3nDA9Cr3cFi2wXDsgOtK9aBAJMW8pC/6NDJNvrzwqHwMQlQZfqKQ0A/ JEW0nFWi0tAymMvef/0aBl4XjUtLpWNcCZ2PZWG7MgvulM5vPlMhsqS6R5/0w33+ 0GC+ewd+7VAjlwdAvEsiiMenQmtk8/t1IRbsR6xK4abgdbpek/pL6ZZYABQYzHyU k1rRV1i4cJ3iDXSeJUyYzjtnWnAyPTDCiNGQTQIDAQABAoIBAEkeVpuTLyauEv5o ds/gQtSeNQpGQV4KvDiI3zc1oDeOIWr5qGqwzFZLiu1ceOOm6n3FOSPrCuVcDMaD kFlGQ7xHWjXJ6eWYr+G424vsFD8XPctBN8m1CREKii8Rm9y6MpDGafq3qMIBZiYG sBUWZARArROlO1EagB1ko54gBbNccHsydUVQBhdQMrTmzH6b5181FIyQn+f+slbo cY5UZmYi40t4kw0Ju3P5pf0BwQtfsgHceYleSJvmZjQ4iUX96Clbjkih9dnzWh7t b/5vpmJrrfy1CsExFKskxh7WsuOdPiu/LNl1L2fJ/sWSG4lqBa9rCHo6oARaq/ZH u5S0BN0CgYEA/dhQ8A93pjh1HvRAiRWPzskeKl2Gh+L2gO5Uocjh//QJ6VdiuFqb PGn42iRv9L5vmqBxlClqWQ5+/3Dmkw8BkOEcLmWjGgYY65TZwMq6CGlBx9NzGYwX NA+9yBRpzZZOA3y7rFx9Jw07xabcxk4LYogWdwlYy0bGnfkEX1AJTN8CgYEAytbk AAhb6Fai0+huL+rrc9XPxw7U9LGvYSZIEZc9wrZSrdJ/BXL6nuqwwXueukjUOyGt v63fmzNm4C85E+esIuZ1PZwTR32eEITMNQriCJVyKzM38OxTTMTtaEah7tJtxbOq 8BgoACy4nbw3hy53LcfRhwb8yCnwr7AnQMIC3FMCgYEA6PfFWHypj9jSzKTYMbej MuHrmHAbTs0i9LNG4vBNUi2zhv7XMGCfhfOwGuxD/7djD+NeOd9EphUiwuboBmFI S6H9zisjZHfiGRuUOVcVIzEO2Qkb4n9qsDIeN+lcLP1b/eFVEFwV1GhVyhFZH3pz AmvpSjg+0NjU4hivRZZb4rsCgYBp8wT032jiWx6CAY5MiTCjOLNnDmA9z/IDlLNg PNeNtR5KnQCsH/q4t23MIn4uX4w7tsPCs1dxAdBimUf/FavcLvReUf/f/8Voa3Ue 36hhQ253EjHOLiL0nohDR2GeFVwxQD+xWWzLapCkE4QNoD+wMgdHuGahRwbpPeHC +ZP08QKBgQDSpFCAZTt96vTENAFQgvEDfAnfVq1KygZy3mDkJ/pIO2pOeRKHb3p/ lorvbbY8OuO/f8QWnLWq5/vau2pZwCpsT5vru11hAoDsy/6ExbEfTO501rGawFNK a7u1FyCrEDoiyj0Yj+bFtN2Hx35tzkbPFZcUtFwaWMDffz3T0xKetw== -----END RSA PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEpQIBAAKCAQEAzVgMt/Kl3JVx4kiJMyuDn5hFiMljHwnlE3y00Kese/6e9Q6o YRILe1Btzp5JoA+2SMEHvEr2PDGzYqnVqUdopmstO4zCCEfaF5i39gkNitb3PgSb LQKpUceouEdVDTtQpYsz5hE+NCmk8/Y9ciHND2bkMpafPZFj1REjLj8Ahduh496U mX9bAKTI3pB47wuY093qAmd+i06ihsm9dpHGijeGexVLWNz3UTBTelKxw7CucEt3 BApH0GAUQflyDyASHNd8ThhqFH7NiTaVRcA/BZdlf6oS545sSWi/NQppDeWmE4le mQ6xJx2dReNh1JDqghwIMfYgkVo/w1VNkoxrGwIDAQABAoIBAQCPmAQE2jzcPPFP gNPYoZRAlVYCqnmTKfM0Jl+3DZnTd6Gm0mIyx1CaIgs3kn7/3BznUXzcUjtQqpy7 4PHVl2b6ATa3Tt4ctkoveA8kkP4UWfC5QLVWy2amFo3Il7FFOHZT3T0kpGgwR/Le 2xHq7vIb1CK9sZCXmEUMqRhF7a6q60MYiteXV3BK3fV3tkc9CTRP3leZdVoA8+72 nPpjO5EoOxBoskfMsKWSUtgOtTVmcVz/7H9qEGjX6yoeblWTJmnxkeqCrDR2dNqK o363QT6LVbX+wvtQQHwpQCm6SDSYYKcjhW8KyQfA/hrLNpcZS1Rby64M29Y+OjjE C12rbfYRAoGBAPYgRraNbhaup9bHR+j53pVFfs4flcnX9UQVyc0bTSrgdvgRIIsv wyCrUYS9RIjprXT/buaOkn0LW5VJ5nUOu20TJEYhDpHUG5QGQv6nFxu8wzDpNP4r KDJ74J0n2PfATT0Ek7PWceoVb9NkiQ38rhjUz46HZ2In/nAw242ILZZjAoGBANWU 8H/ZhQyxfuyNLr/x9LGulnrr5B1bnERhNs9b42d5cX/5t/js66+EroO+XGbef9yn 9Xyv2oZbMlhzSvcjnlBX40i9jhS4vzs8Hv1NfbJfLVEXIW40j34jPcRWrsU300zu mjiqUB+t62oSxRc1RpHj0VVIHz3OHEPFMhEca7npAoGAY2XHiQP2+LwSVj/mv6Th ikElo9LHqFtJ1vRBqk6jTHSYNzibfvqMAA6P/l59ZhmRDpX10LC1YkCK/PB6XL3V XYiEdrn061nQxWf9+F+8ilwiLAeSei8tra2vmWg1TGDiEIlfqRoqqRF9Ns78NqTc HnUbWYE/dDmYnPBuSms7lecCgYEArAA39h4Mof5HQuUn4vhNoNIC6ZcSq/nczMyl QTS0293XY8KNP/A8lar6h6pD66v/uImijvlnuI+06bpfgsuycO12YlwVEeb+SgvO wRsowP8ZFZbVG1VEwcZLtdRBBx5AElKM7FlsETcUwOXAx0HmRRL8v/tG/ZUA+irS eSk0MBECgYEA02NUmGbk7Gn7hNM1L1dSJKGt6fbdMc/FfcQpQaNNiLWYuRN1pSMv iPCLBAcm85GA4ryqxqNEh6Kui+I5HCR6+y30CaK1x/BMZQBZxRTOx6YENngTecXs 7W81PFQ6gzjQf2bhDyj1RQEXdl7dh5M7s2VN9dWlTpdVQaf7lKNvtMs= -----END RSA PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEAkZ4wPUdX6hiGtILes7Mhl8HmSPgdkqZwzaibn3vC3WUqfWzJ bmFOOOJNQz9vW2TxesptcPUlOaJ3WLzfwi/w+OF7m0l79DkE9l2BHrsW5pOZByz4 wAAg5GgjSHpW4WT+Lp6LS4iHVd7ri3YJXSlibp49LDkKi3BaCHIZ50+eFCPZOJ38 flCsSiR3wl77TBPOTKa8ygVd5Fe6BZQ2eXaI7B9+cztKl64fISC/MdynI6/3+3DN xSXK/YJqtp2ow3j2FsBQpQo+ulxwYZ7/KdV9DUffgt/2bIFsCbyk1ivsqBq7lNlk fW9+gjnGLyTr9MS+GzYYIATF/2+tj9YhSxL3kwIDAQABAoIBAEMepx2XxO4iX/TU XdJ2vwU0WvFHbFosXdJt5U2dvjRObUdi3XYDZArURMi6dJmr7aKrq8ZlOMNYH6rH ZFwdvPT6+f6Z4Iixv5fPgbSoh+XAIskr8XyOkpq1ZY4C1gkOhBr4+TvXsoniNrAR uD841CYoygmYQUQEhXtfHJGCIVsmePvERV5NDuU4eN2IDQBbBYKhKSK2iNxvwvrj G75ZM3Ihbzcav3U/K2M9NgdM7AHVZtVoArEXuPr2dh/gS/9rPGORzUSU04PVCkwh U87PF8xeIziT7aTVAluNuaAZRCr1jOcWU0WYtDlVKw6+6HMkQ/A7a8v+vNLWQk3Y ipeaAAECgYEAwTwCWmTqemulLgaXrxgBsRh4fPPRPb17N58UOEphGNngroP2XdiK fdFGy4ZqktRgXN0xVleeWX619MSIc/esuMBES7Ze2Qqae57aaJrwEmU3JMlKDgxU LyQMCeSJWJ/7VLaqQ2swrvya7B0lByVWITLCID+j8HhNEXu3yckBKNMCgYEAwOq7 n6MBeQlIQN57jCHVUZAOa7xxljpzBdXn78x3L27QbY6kdl+xdIu18Otrra0hKNtp BmbL99huNtdRCa4KpePsa0BHZXpC680+5MtYnWgmkDoz9Olf44lZpWcrfcI1tUTv uCgcJrDuRbK6i2/d3/0Rj62Tvg6RExg64We5vkECgYEAhCshiOahot5h+tszgOWw sosETqMOKWajEuZSFDZ7t12/Wl6UcpgcEfbEr4ze9FMjHiGFD4OaoagTmLmcg4WS tEN98zNoKJgiFhAPX6EqN8rXLugnKPix1BSZz2Jrtxyl8cmHJ9n3UJki9gDxRLP6 93YaZahh36bJP/4ZNYGws1UCgYAL77oyM2zI52kgEmQElKdVR5uM0PkaOX2ac9TJ ApaxSaL91GCarmsVcfuM75QXB+pQU9sYuU2PhUW0gPgTqEAiaYrcS/re7YSsgGOO 1oIiIyqXq/JBChuTwZDZahvHyTd3gs9uTpUHU9U6XMesDvzkeg0XHb9ReCdDzjD+ d2OHwQKBgQCYs9lPS+cLvbiMK2XhCbSWdx/FbqIuDjTvBi7gxxIZ+u8qHaeP05zv cHCTvAqHKNhwae61YyqyQWm/o2qnG4vp6fC/o+wcnZTIFTkLJwbh4FBVMKMO1Kf2 h3O1euP569iDSUS34MkLSXZR4IDORLZxcK6HGyCgbTRBvQKFNYSRsQ== -----END RSA PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEAm/gxbDoZOi8I7UPi/oETm4lj1lHUGNfh79JqwpXyoIZQj/9L wbRCqp9ZAeaYfJrmF4gIHVD10iQnKdrk6WfA1qSKIXkeBRGK8K8hg5rtzuxeolHU FUotM3C4lSVVc/xMmleM7JCQbFp19PNJBDPkjWKCAbnyS16epmR8rgsAC89S/3yf QADttmdBOE2i5q3ShFuj+Y6J2lFZiAevRYhV7655wF12puAhF1UByLomAOeRFlMd FoYiqxVCoLpF+61t56vu83ycv+YEeIBQirxThPfIoj/vmuEzmu4d/g/E2NeM2Cgs HjgslrPKc0wAQAkWMz4Ni2tmYPwKpj70Ue5rLQIDAQABAoIBAEMMTcq1qxSdFZxR m6pGuLQbOsTuRlwrqd/bt7NQnI2vT8CnQdzSbfpFKBEuHQ0r1Y/2FW7s18/vZLqU c+V2iap77zl2hJYvNWhEEQcvOd3DNOdYf/BrA8ViRqcu9m423oNW8ajceIlr1dto HlJlMHIrD7JISkVmNpNXDVYQOoPYf4iiIcTq40h655TSoDaJaKYMZDCR7e3KyV/G 6W2739JA7JuIQvP7S4EZDgeVsluSMynn23HiTe/jXb6QG1TlpQ4WGC75nePSONek qVItn1lIqWOEYbQMrlocCbrT67DfXsBOWRq6eouHpjxbF0ND9LbGF0spfvKewKVz dcEXzcECgYEAyjMDQ+kgaLSuitZJ+2yXzucUXkfnoeqphlZJ1yLvFkP9/ujhqPhh 8/5paWN06WUhxxS/Qw8QqI0iYxoT/3KL7KL/PJNAKotMq/kaQxVWz/jyTWOsfl+s Yqjqel9Ll5dsZ+OjjG6Tx27rlgMrPUidvwUD22t26KJ1bDtw4ZrVuVECgYEAxXgy o+xwOV/ppyWc7bc5j0XkH/wEPX13JVw/IyPeNjp4oli79de5477t8pWh51FygwK9 jndkLXNcb9UtodbEmlKhY/T6dancrmnsEqYHdim/ndz6Rk+Q7wPksPXwNyJ6S5qY VEGwCGFFnNp3gb92GXKpQMUy6CYLX5ADnDOGXR0CgYAbVRf85xeNb9ckR2FKzlwb CNuU/w1NsuXlleZ3YW6GSPydp6dRavn6vIpNR7d3EUemnKRaEUBEOIfMc6r+XeKS Q1pTOuhyl8/uc0bciJbqmBFQ6sdXceFgmMrRbe5O+JYb2QazpgLt841/AsCmkRlZ x/jEgVtaiRNsZQCWTpLTcQKBgQCnb1h499TcQUAr8s+SHIbYvelFWXn67XRmIEaE tDgJgSCif1y4gndi7ZRy2X9TVRMklOFHeGJfy244gOhVTnabZ67iw2jO9f1hgfyi f1baUWHhJ+qqTXLVx1ZU2eQZy8koa+f3oU7yfA/7hJ5KTJ6Fy1xJyCt2/jMsjz8Q Zfvq3QKBgQDAe8ZHb6SbnGxSIkPAF+K8Px6tyWRrh/xsCCseDaWZJW3c7lgRiFlP 8pHp1o7D7yZj8dnOQg1aPkR27A++A/WRy8Prn+epexDKGnoD3dtVW+CcpluB3MSB NzWgOgndaUN7OysBMp3c85BRfhZM6WMkMuFeGWoFbVEQweRM8NnbBg== -----END RSA PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MIGkAgEBBDCDZKKtsyC/TLquI64OSemEORfesiMzVLKz+Oa3LxxERaPzQLw6WWOk xUkiECsI8nugBwYFK4EEACKhZANiAATdReHw9D7n1prDhcXzSTeNs+PWbSDkmE6c SaHUioBW/HKVmdmicboR7+VwAjQbE4DxcseVI4i2ak0+/5eqj5sbrjEyDteD0bKJ xgb7vzhC4Q7mOlzrqogZImAq+bSBeDU= -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MIGkAgEBBDBbWnN26sGF9IafnzbGdbXmGRRKOIdCjEjcSlKWUVoud/QzGA56tONx MP010a60dkmgBwYFK4EEACKhZANiAAQdlfCfEKIbQeB3MKTvbHxE0VdSZP2rvsQu lQRo+12Ltd+IzM0A9qb4Meq4uOwdTbFAKbFdogS4UWd5ZfYq5CaTJC2l6Slsy1NX QznxbsHbKwcqoOyf92uu0+4wQVvWLgc= -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MIGkAgEBBDDu5j7jjdaq4CfDP2EltZpNzB87eAgXUrW/isxQUqE78xiDTXqcJM1m 9u5oJ4zVGCCgBwYFK4EEACKhZANiAAQshWIUHZxheNY9ynlB3JGciy9Rbvf6ZmWu b903faihTrkLoTwQqIWFmbzuYeTkc18RQCnAXD4LelVK2LY1K4xhDUjswQ+rJOpD lQlXnGaZVQb1jN1Twse3HqIVuFj5Ixs= -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MIGkAgEBBDBFR0GLE3NieDuGzyk1c9ZI0ZITbVWJQbVd02S8FXGI3jYbecOGLV5H Vuy2VEbZspKgBwYFK4EEACKhZANiAAToW8rf+C/TP5+Ce2gRABp8+WJ26pDC0FmX SCMviyyKa+cHALyKVdU9v5ww0+qFDSJ6SIOShcxhY2GgiXa7hOkfpLPb3JbYWLaa PPEBpOwuM+zkfbE9iYVs9AVq7urfPk8= -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MIGkAgEBBDAOhlC01VrrBi3+EUxNvCUsnYBLWUIBuOz62+GhVx+V/j4n6E9/4Hsk kVkH6D5r6lKgBwYFK4EEACKhZANiAAQsRiGMdHUWcmrl6q8rkS6F8nfR/fcsTpZV yPRX+GdAg25h38Fportj377g5t2bsJAqng0VComlVwT1jagPHkuNV4tZf10KAuwV LAd3RRPS7h9LyNMTeTYE9BFr2+M9Jlk= -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MIGkAgEBBDBXuUPV7Mh0EIegy3aq2dF/Xeo++/YzsprHJsZcar8/SPxkYq3hCVOH D/SmD1N504WgBwYFK4EEACKhZANiAAQ83k0cB2rQV930RKDLPjzxmPoP2IGYRM4d XRxp5XLZMtZA8aGJLO7IV0ag9LZdvUKKlHhmkpgxbtnxU0BRAUSYXLSC9XycPxl+ MSp+gYhgaPyIeQwC+isjuLAI9gcC24w= -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MHcCAQEEIJKIzEqjzpXWNp8+bZ/g0B7pV2wZ/gV5K6YMSjPkiKfAoAoGCCqGSM49 AwEHoUQDQgAEisBW3dOHRn7MvlwkpIWkEWHne3z24OEP9qwzCSAYUgvwSvCfaCGY EDnBzln6J/66dn1UBWcxiM/M6jwEee3EGQ== -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MIGkAgEBBDBWFUQryhjbTrZCtYDVmmQ2Q54eSsr71l/zekxhpCzhMwoL73tQPb6s /M8blpEK9ACgBwYFK4EEACKhZANiAATXvmPpE2MWBOQFEetCmfV/tmxw+aCAnDzo NtCqHzSoWlUnOUadM76YzGxaFDYgGlEVvp4ZEo3qeIfuMQdHIBelFjeRH0Ek3kq/ vNqRBn+oesp5i34OSLlM3kGAeBe+Bik= -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MHcCAQEEIJ4NZXFz0f1haATspvmn1rN/bY81icUDDiMe4Incq8CXoAoGCCqGSM49 AwEHoUQDQgAEMdzJXIRjey1KgxjFKWAz7xqj/BDw32zYC+dyvyNxCeltzos3QkTx p5zkfZgOIhCUNljxrDq3llXU/VT32GBZHw== -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MIGkAgEBBDDVgLLAo4ttc3JBKLWsAm8QddfgCm0J515mmb00EX/Lf3TTLp9t8GvG U1LLhna4DWGgBwYFK4EEACKhZANiAARIWBSvGLtc8SbsMOw7ocYE5lWR6Zw/VvzX iiOSjh7TfEkH6O0Jh4iQVt8aDRX7lRwIoC2bSXNH3wPZYoGOCmMg/mbZr1RRPacj OG3t8ksa1axxTzQp4VYMsTUC1ZNPna4= -----END EC PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEAsYLWuV+uOTglaZqWHoIunwMh4/HtDJH7NNzKnKpc0qYkrhCw qdRv7UxGQeJdTNlIqWoFd1/qtLAC26qzGfo5wz/uhFMIsCMMDs9ckHHxO4f2eyQI NKnrZDZ5JLqHCKcLbNKY3ab61lF3+oB7l42zTX1x8p1foH6qNy8qDoYbWwg120UH G/nwkm4XL+r47FphZYT1CvKC/iK1naQWlt38kOczC97Fv7X3Tod1U6B0XaUHHBRO gPE/mJY/4F9g/CXTFyCHxVfR3+elyk1gRUuPQT05vCu2THWKg8pEKilLgop4pOhy RJ2Vn8xuU8NtVIoJ1/LyJoxOm1EjczYPDxf8PwIDAQABAoIBAEi+bpJPBI3MVYCe ahCcltBxLy1DkjpJhKGYLavgIOPuVC/FBTDDrw6W6F/NjSCWFrHekdjmxL9BNhqh LH5jzdIW2/78LB5KboGPNsa2+v3DbR3vmTFDxQQvUpvbmMTR99ujviNvb3HutvVA O+XSmv0RgGXFWk/iOI0e1eRXztQRrWo2jm2MGwmJCodYcaQEOmQPT7HMAl9Y/m5y rMLEzahYKcEQCYt2GeOYhHG9GZ6AOGWnqUJrWXTsb+/bb3+YSrrq0u8JGaBcZt5N FZjIFT5imO3is3yMVA0JA3O5bcp1BwwzLUzHo77QvPXPi05L0cWPgbkLehsLJrdR ujRda2kCgYEA3iiVYQIz9Cs3ERdBwvZlNRF5D0GPQYaGtqy6WYO9Zf2VWcqmFHwA GzOcQxWi7BedU8D8ukvOCKeTIE8OodQbmKkOkiHIFcB/6vc/1Z324S4Tef6bt/76 8bJYQbjuV1VUEsusQoNg0Fwo2n5qUSyEOfUA9VaniqVirXORuR+sNpUCgYEAzI0o t75Mr6VLvuX9Q4ensYZ2wNb5PVYjnmgZh6TRaV+cSthVbO9Cs2WizPP6nyUA242m Kx3r4fr+QPlwZiMYSOgyrLYQDEDmdvDLB03u+7LfZ/wOvIK56X5E0FhEZ5TJ3yGS ME7fmaHPaFfkoNVSeh0/6J49XRik+zZ+ggKaVoMCgYBzIADZNrUJsWNl/fFcQSeN arKbj1PXlwk0nSosvTJnKhQ9ZeDO+LttXT97HDlDs7EZ+AZ/3Ey2+3Ao7A8fGbX7 VJBydgMkEo+3ic2Qu712T9RUAfdcUExm+A74cAdDRrq8ysNH7KE9GKUrJRufWTxk dGy8tt034iDS1fMMRjeOSQKBgQDJkUyPjEo7R9LVggPJuPLqAEwjiXPAGpMs9P47 aZImmV4Fbxr3Jur+p2f/OWk9zBQFRpd5o5mfbVuBIYy+SVUT+yR8h0hXGtlAWdZo E0ct5r051eubneKgEZq0CFcYD0nCxG0vh3nWBdrBwuL8DlqhFRO2IcDsbW2eU7vk V7ZJCwKBgQCw6BwDcH7kQrJlVRi/t8wZQdR+FoYRpVUrJZXfd5DYgUOgtykXogyg uUjrM8L7lS9wBUtEmgggFtQHeGJDegQot1p4mGn4+QdBRtky1NtgYrsrH06Q9hX1 oyyTCGeCbzgKpPT3aehrb+rgPX0MkBkXCEzDckiEtrv9NNTLJ8WWmA== -----END RSA PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MHcCAQEEIMP9f47KziuNZGJLaYmWmm7CjaCg6A63RvTr+ZLAKi6hoAoGCCqGSM49 AwEHoUQDQgAEghP/AU41zS7WTPPPWkep7GCBZX1pV1B2KHUYjNJEfehsEDAO11KS RmB52+t1QKTwp+cQvLodR4Plj9luL8L8Sg== -----END EC PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEAo8Ned3FldkA6SkNzpUdjqvyHiiTjLSXLlK89+Pzh/zDMLxnC hFh5MUtOs9yLi3sOLbla9FimfVmPQZ8sUbTbo1i4Cbw0IIYVqE60IBS5sYHe/KYN lNGthoXCiZaxfhgMKRTODm/ihrBldnGzmNwishAU+PoJPrvt4ydG10ihX17KtBi0 PVlEnUvTNLUYxlllJOCrGHmIjzYXDqaHr2SEDHJG+VuFWLvD5wNNpcFjbMxliTE4 JNIHib9z5bWOWlQJ+qV8mFerzMAVbJ9KyKBjDZD/Qks6IBbUAB1Yw6uDILQt6+BH r3Z1RXJBSGk3e+S5CueRp3T3KCEjSspS8rp+wwIDAQABAoIBAAxi8Zk9NXxtPTty wKOGs84yDZpwUdKPYkebvadAkWN48Gi7nQ/flUMaPBi0nMVvCFKDC5MhxW4DwSco f/SqJlbDlh/+YT74hVjWox8uEiGP/irD8JEKDwL2yREZGdG8xeaxkShcZBjl7La5 wOjV9bXcK4ntd5eMJWEiDmSoNLR+2wJdV+Zzzt/aBlJiGi/53/JEnYkXzTwMlU7z FDG8l5bt1tjLd5l+DxsyGm/8i7QioBs/YjdSF1i7o858vBMvjYQCwkqvQNkIEpae huZ0NXsmxIct8rfNt/10+xnThW3YMKHQZWfizOiwpz7eEHtdmKrlMtaZ345o6B3+ JlKO8jECgYEAzu6t5UGq3pvyTUJ0NfO0CB9AMwxFucPqRN7uGtKxbQlD9YLDKvHu vkdyy37LBgqFkpwiCqzBKuu65uNq+i/Uv7DMJwWdkDvlSXEiPBFg/C5eq9SKv0UT 53EvhUlHfDnR3f9IbSd4LP0vuX70OOLymk5Q89iw9PER6CkiX8imV1kCgYEAypg1 3A9E+dQQIMEeNA4Vy/I7NHXmh/9qHiCezWT/3i1M5zLSYXqZI+zdbOv8UeI73OZf M7u0LYBFfcRyAYAxrzlBy3QtWZNjrGRfLisHN2Rs9WMxHv5QPvkpmeejOehMUCFs dhGdQOxoVlYr2S9UWHMN0yqalPkdQD/apet433sCgYBjtDrTYG2M7sSzlxZZPH/8 /dm3/uzFkfEZl/RPtj7I05MMAyI4WfN3eQOFqyT1VzJ+rn30eMJmBMi8IM1VmKBA cFYdYyZE7acPWNRu7sy1FT6GOlVTzVvGwxFrfiBUaaOF/E+QUFkmDCPnk5Tmp+rO kHeO1lSE4HaJTvCCCDKlmQKBgGlZMxCmhAihZG2T3n/VHzJ5WJ4T/PeVMnpOHiXS Mlc3GTlULR/xX3bV8eJ06DUwPk7FIJZHMg9DF1+p6lqrbaqfTH5egEKHKRp46yGX 0F3Wg+4qUV27gsDsUdytHiy7hgtZBgxzZmFfTXYvwwdh3CtOUM8Q5Wc4DyTcz3bd 9nHHAoGBAKB7Si6KO8zbCWNYY4P8GJqWjLmvjqJ8/wq6Fsnefb+RuUledZdL86gm ibW81vj9iQlWBJTXcujAsPiXxUyZ4m+bAP28+5wyMVHiTrrEhOxnJ6nenRjrlsqH btneeXEMFzvO2jxEqh4mbd1KMhKnDEOUuQqaQxmbuJRQ00TgxHkn -----END RSA PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MHcCAQEEIJNnpofLxhJ+QgtB20jrqOAyOBj9QS9AFo+rpMRikcr6oAoGCCqGSM49 AwEHoUQDQgAEK53eXt4avIMWDYwBkFBFjgIYyHOmZlQ53xO/r0X7uS2peqrUztD6 ZP3s+vYQE443Sg10pwNBpoqGn8PXJb4/EA== -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MIGkAgEBBDClermPflZfvx2pGHNJdDDU0xtWidXIhpG3vSLDNaGjMG2yaNRboiaG TXLFn8lsjb6gBwYFK4EEACKhZANiAATVSm3IN/xAUIdeEWGbB4NoPQzPh7TNxiO9 KtweEmuffzLeeIbk4rLX8MIvJCwlxtk3mNxxZBcJEEOafxK2rAt8CN8rOTCUiWFO 543dxEl7ZsIc8MQUBL6lheHBd6y2uZA= -----END EC PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEA3YH+AHel68TYfHpJOMXt9P8z65FThPeXtqcgbArd0owExVGv +vIR3usGBV7rD9vFgP6fIBZdjpB7RYU/x0HU0njub5PVvQedcanYGgNOJCyDF+fG 0ZjFCzAIawGok+peGLLw/iGsroWI6KKrP5eqsXt9ZWlE0L01IkWrHPT7gFm5ikq3 9LnxqZadhs8ChBf9OSXbTygnnVq4PzYmw4aP8y3DH95ap1lAwiM9Nf/2zi7qQAFd kc15hd56bahlJ/rqQgp3z+r6m5vbBwQX234oxnmG84cWfZrPNhbNC2Kh5zy6NTT0 fj8ARh0olbHs0GufH+ABvG4ZLzucYlKoE2bD7wIDAQABAoIBAQDAF7UwrpIjLmgX Ou044N0FdDOQfE0TqKvW6ISDbcEEkAyrGbYlR7wbt3FXQwNSk2JqBWX1q6+irMVa er3ejMaFZ/5OoMPg1DPDmGkh1e/0Cu380zFmHrfyhcsnER8id0L25Gd927Im/wLF zBv6YArVM6SBR5M3+n2TpRtJV2Kr4IZhOepIzVKQDsf/cmzeCzl85LIHy55TBxx/ d4gOO2XfkmoxBcgOqTMy+7hy2Gl5Rpzvugl5FoYeHVL477rLsCnnPHH61fpDaWai gyznI1odItXOGLwapgzgyB/Mzv8zh5DQaNlEXaWlga4RiIbAi9sqLXwvnEWKcZl7 IqOzNoohAoGBAPezYOUhjSBfSJUnju+ksr8lrzTa4GXZE6Ih4fn0RqkEHTMekDpY ly1FGibGCuW4x8grUCzujr0TVccCXXa94im0Nn/IVSgeGDxufvzstfhV+No5sJPc Ttc0AW0hfwL8WTnvaaXbv9CVcvia2F/tykDGUwuYXQhPT99fUZYbeW4HAoGBAOTt 8oBItpcfuUNOT+HvcIYCiQqzY0TXG79pjRyz/eUZyFmTvdjd4e52PSIntCYOp6ui DVo+Ztr75qpmdfwsX7KMVwo0EgLXuouYyoLD+LaheDhmyMxS7fAtA7AfcTXYxxqn mmHmHKh90FK4j6jlwO1jwSpL2NQW/q8XCfnco4DZAoGAWpO4ofET5zuQkiJGDXG/ f1Brcjt7hSLNICOdu8ZMtG9xsgjCGuPcXEyBlJ4ky/426AaWqeeOQKu6WSyPOuWS t0dUCoQaR7JBkI+jVh/FJwthFYO1A0yzc9RrlRmDlXbrtdjLXEAwMzkDMs+Ewgd1 Rxx+r6XGl0xRW9BCSE7Bp68CgYAPrVvV/STD5KBDQ7Gkv0jtZG8OFIrPxAtaaFgJ hynz7ngR6lQt7cPzGJXHKQDlOkuxLT/M1kkk5es98BZUVpWXHJU5VaeGGk/kD2qO 2ezGVPhupFtL4sH4mJyQCxctoNLBuIiR+7gqsbL6dzkfT9yOZS5tPxRyMcDvLJy6 R6nKwQKBgQDgZSGQvbU3JNFMLXUow9oO2ssHzztgrVTXuegbup775u2/f/oZAV8a RvVCI+X1i0PiY5DfmtQWGuVdCBpBpgwe88VQJroLks61p2/FhODI0rZ74YsUkwxT HDiDkRpVdJ4T1YbUzqabi39ZcrrORCCT39lHPhzaArsXb3RhOunxjw== -----END RSA PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEAphylJZrs5HDspeRGqisxByqR0TeANPukdPHWSAMDxoEMAYdO tg4gRnlbpjn5yq9paOmh2NNbn1z+yhLE4tbc3IySFaWu8O5GIrhFcBcP8pLgW8of BdUtnMI81q/XMtPp5D35YvsrJneAM+wF9WSlZP0p4tQ+mGz1v6m85NDUny4n6/9P rFbGJ6Q7J15B+E3ygZLrkOPoDG4lyF67ZNnSWeXCM2B+Mzt1ENxibFaktPQqj/Tx 8OuYZp3wV60bsFe8/x5/vRVjwko0dYL9rC9LEjinoHhhLevT8F8aa2m0pWBka+66 oQvhziIKCfzE+UelQCdAJ2tTvDTYr13LjTlaCQIDAQABAoIBAGPPpH/zFlKxc9C+ WKOZbk1DC/ktozCy3/+Q7NO6VANruR4WAnqsBEK0WxiHj4t1WR47/A7/+PbJ9yLO olU3C+DN6l1tf6+vTJ9CIB8ZDHESRhOBYKCtlkmyAMJzSBh3cvu9LWOHTkc/2N3Z /T6VKjiDUi7En5QRLJzszd6jiI7YQZ0qiYqRTK0hGNLv1w3lvdZ0FrG22FrddecP XHGjxctlxku1zveKo36/1po7gJeBSnPHOJPNTf7j2fAMeTS25aJ+8kcmOL3AbUzI k3y7t3arcQf3jXNjOQnswVBDXreVlg1YHxMzYE/K64h1KPZhMDK833WhVSVAbvc6 lF0Hkv0CgYEA3WEy7zMGRKdvcqMRP3e3M04X1ncAtKnDzzIGKlsDS6ub7hh3Guf+ 4zn4XZGIL7WzIpbF1X1G4e1YX7fomyZpWHTWbBxQabSGr+ldMJjodBilB7eh9TJ3 LFZsaTKRFK3DjX0trirPQeBi90JSem+JFPYmKGiGLUe+JfgMVFus7icCgYEAwBbV deZ3UJdvev43ArzwM4wCyc8E8lN1/okMwzFtXuuHqS0lZmfS4JvO4Ctl1Q4DC4q8 Q3GzTVvlIZ1rBzefUC08i6XCR5PWd7aX0ASpS4VhNJVDrh+BZMv//4TjvC56f19C DOOKXAaBxHr2d18XQIRFiIHq81Pt5CUTilkKxE8CgYA1ak+E4bXgeNnuOiReQP+G NJCR4dLcxJ2Hb9WHAMDR0E1mbKbIajPZFdK0mPnYMSpQ7To84eZpewA40EIitWjz u/VEzqwkZTeeWFtw72QfJxcivo8of427t/qeg2H4MFkf2ZVdEd1CUubuLCWEf0b/ NMlONLIzWL0roicvb5NRPwKBgE6NB92e0UvzoXL6YiSMfu2VY86DCdLOroHYKY/o toEKb/+Opqyp6GJRVNf25z2o7TXbFgG+jUQlQB3u8cWRyWRQG2I/9qKuohVyZcJ7 JX/sm0OVhoe9+nvtsFIdVcOufgl4OtpqcjoPryFZ51AJYsjPTl/0QNAgkjepscPx haWhAoGBALvoWpBehwfhthw7Mq07fhEHOBnESq1VGe7UUAgOJ/gGIamPhTVijBXA kjr2dYmNjuWbDwzqZCGPRs4sVJJp4vUY/+z9aHxsfcPJK5l8DLQaZOti/5Aj5ruX Zbkle5wo41oBM6lzSKyw8aOoAtm2mLofP1w+qeIeZYwwXPA6zNza -----END RSA PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEAkO3LqcPiWs0twDBT4GaJ/N/sDlaC69DYbdSmKmtAkn7FtdxE yVXyY9+RHWP7NRjRc2Tmssqp3tQxqf6O9E9fedZ7EpKwPArs/9JUZ/TevpWpNW/K Rfi4XbhwGEbtPdvvPjEIfOWQcHYCOLRfvxACzxXKrAYhx16HSI74E94WeN7a4bL6 xRA6JyWp+AwfxXzScAidZMcKfBzCPLQavgSqkf40o1ibA3fVgunjYbLc0rK0rOlr DMAsFyygwDIV7ug1iRc7KatOZwyyH7gUyBIAir7etRbAPtXBbj7c6cBwGONHapwU 0THqHzOVz6fK8m+bor6CS4rEgLxxtZjKTJSbEQIDAQABAoIBAFp77Nz4DJmuYnMM eUGwI1S7JTEqeCDsykOAMaJoRe9wsNXDSTr+qxAJ5BsachuLfDF0fMiB2Z7ikoNV CEGmULDL5RkKdnd2RtPNqJ8i9fK9k+BmBD69c7Yn0eyGU9Z8Oxl0GZ2I4i4kr2xh ySmLwIU0UM4oIezMqt/1SxN0ZElfwXlAgyTQwPRfis6rbWYzHgZIXDg998Ywp1WR Wqj7DH2ZM+pUuGq1+nBJ14/5V7xikabxCbB9tXutVj/pM5k21O+IB8+58rQrtKxd t57INJkSU2vRbw1a7BJW2wE0i6iAwDyXNeI39UX/6nt3lzUweSrWHiOKzFD5NyQ6 wpftykECgYEAwQwJksZhcdmGLr3CimC1gUZ46lnZA8ozduCWvtdAwA4HePRjnFmq ys64ePMNT6pIF672E7wRw0S5Lapks8VvTJiWnotrERrzEVHYPJaJ4/0LjSD2zmNY K9Sz2ZIF0H+xQKt54Ew5veLfFDyN/0ydxdCQrnkR4rDsRpcRK1NfF3kCgYEAwDDB 6SWrBg+eBb8s6/sLrMZXnl4CdCitVAFIpZIHNXJEET6ym6AYM3a4cikElynw7259 SC1d4Z8ZIu5DorootL6xrg6GzF8pS6oT/9T8UZOBzRUWCQBywgHb9vKzZEX5Z/JP PkOzr3FCbYuBPMSSnEI2rj23Z6QlLpUmDqLqglkCgYAVAtdj5z2h45gMLFEpOH9o 05/DegX5uJ9DWAxwNwNwI9bCXm8dDFFfg4Jmf6W6PwFbuopD+ZtBUpCJHNubCWkk wBLcrLX5haJhBzRu27+kVd1U/fp+2ic1lhABJTiGye8j58X7GLDMLw4yqKiX2eHu LtYgd0LwFmuQ/046FffqmQKBgQCjBTiWMPNeksSxjzXlfO6sQRl1JbzjFtXfGa+r cbBXr3L5Rbtusl+U17EgdJaGOnc6QPhXztOBW9iQfpY0Y7+/gLlqMLw6gsWefse0 C89yyrIhaS9lt1GgKr+QOtHbzlb9ytVYtUinGmUEUn7vMrZBgRCsv4DgkqVPXAgK BjrxEQKBgDk0yfryvXwRb8eXgabar+tInUrvdZ6o6fnptNTcOB9PFKycDbhicWmX PG+eEtgNgjQhMypD5AIO98yTOTY4+uEYuYkIk3M08xuw3ZvzrPPGTFt3ANm4h3SP 0mieysmNVkT7YeOuujeOT9o6dqQDBcJ+K6tCbVGGO43/YUj8VBrB -----END RSA PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MHcCAQEEIBeZzS9iv8DGW2RUklxpWUqHWLY2ncW6mE6qBgF+VOBjoAoGCCqGSM49 AwEHoUQDQgAEj78gEPiZLt/XmzseREmpOaMmjUDDjy2LzCZ/FGqGWd6kpnMtYof8 sWUY5KGjn6xX3wleFfDmrUQrh3BMiFtuDA== -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MHcCAQEEIC27m9Nb0JHigOO2XyVhfneh47I/TqZH5zbnryFXP2vvoAoGCCqGSM49 AwEHoUQDQgAEwzR5PUbLQtnR2eWrvwwpnhjsATvdQLaTH7ZirkqqyJ4UyJn8Ab5P R/u88YRJKri+l6TUyNInVsgP7ftW5q+5Fw== -----END EC PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEpQIBAAKCAQEA9a4aKY7FGV+yLTahkiYpSniHRBuKXgPc/wo5Q8F05jHj1Lya 2P9XG/TAjvnIpRjmvy0oZAvIKjWRmi5S6oU23U4lLzais8FK99GhIvd8vb2w+nW+ k6D8WXlSOt5CaMH/OfjU4FbsQUZ7J8VCLeT9yrvcm2PnuYd4/DSehAjXQCdeTSJi kcWmTvvcYAuPtPCK29zTDcl0QTlVuo0eM/GDS7Q61VpUxser2YlSqvyv3SaFhx2s mMCXFvQwT070RR5H11qanQ5r8TDWoxkwBe75fpqlQkB70X6ufx/0q/eodSz0tglM zRXLVlSzIPq14xFJAjZVtAfowuAp/C9B+AcCjQIDAQABAoIBAQCbX5MuKxuds3a0 v3MpQbclYNpzCVPVp23RYb7bifKLTov+05S+naWSiZRqF7B8MSZlS4La2tSpVR2T O662oK8VAMHlfREiy6DE36+ftJMQUHInw+VV6h8N2vtVPZEUPXRTTnoasv5RPejP OyJicgrLd0nKgEFhhTrPjdueNxUifUYTTS4QSvJjP25XDIgejMtoBpZc9coEG2+N DhoLBKGFewuInjzAHdEA6VwNTY23Llvnf3gxaGl/8Vuo8RrNY3HASC4cloeQuFjC qry5yNczNXXjR3FA7No3rVP9X0asn4wf2HNJqfPLeJshgWYE233uXLoXbxuJcnCk KdZ07+mhAoGBAP9+H8J4owbDOB5rj0sduxhvGvw1NfyXOHCmqeDcTqbLCx3GUtOx gzHaFtrkylGrpkZY+PbZZog9q6WhFBsfN3HVAtpYuqFgJDae2gk966j3IWS50spt 036UlQpPEQVdLuoiqqJNHkT+A3qwSGMBxwipElGqiQkFDUZ09njW5yz1AoGBAPYq /XQObmMNLuoCbT1Dxrt7edlYGK8Gdr7qdRk6K3iiD1kPVu0m90y2hKoMHi04lcPy Q/cbzhXWpANNAyGL8wioncQg8anMY1p36X+oqD9W6mTNpa4gNru+foPXCN4H9noB LengevpNGSCcQBwUem4LFu5WfDffF0Ta0ZJLlgA5AoGAA1xHUql/i3E55byIb/Z+ JX4gnrycbywWA/VNOrXrGuqExOl84WfuT9OMhWiI+LYHQ9mbvLNzU8tr3IvX1dt9 QTQKC5ErM0AuecFxILn9xYUqnUaMbTkwlPOjWjVcBfQJz+6Qy/2zrjihFxYGfbbi RUzj/sr9bm7wk8KqE0DQXZkCgYEAqAZN+7KB/FAaTpYbdC7X7k5orEaqioUR9lxY U0DWPT/40+RZhAQN1qnaQauFyX4PE7FAXOH4uAVK7Anb8kDxQV6+WQnXifu9cRna Ik2/kYRE90s7JHBOi7WJ63mSTuMGhN5bNYEIz+JiHVUpmUENFCGzpDkaDpTS8Cef 1oiLOVkCgYEA7TPLHddDG1NDaUVR1ESj9J6KfhquB7AcNbtSK4mo566zt37GgdD5 xscGJpMClPpQ5D9zQ9ckLTNmnaH/Onel3UgbTIsi1Dq128K30Qzk6nTenpK83sYJ B/lh5T2B+kliwO1DGXzT9SY9TOXX9qcFL0VJ+A5QnQeZGSrTdq5/9hA= -----END RSA PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MHcCAQEEIBzjvzcMllE+DCS0+E0hN+0jZO/93iSQMNpHPeyhwb4woAoGCCqGSM49 AwEHoUQDQgAELXn5eRjlRcCHmX7MbVX2N+TlETbdiUyHlMai25ajK/YGG8l7FyWA zkkSK3PJBqZri7lQvA9YLAb3D3dGcPmImg== -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MHcCAQEEIIowyHkTCgavThihEPU7xp0DeZ3PeCTiv0m61t0q/M/OoAoGCCqGSM49 AwEHoUQDQgAE+gAKIZ+bzWqpaZbiW3ilcPmJhCI6doj8TMH5DWSjepetcheYTc9v cZf1rJ1VSnbNor/ise0zssnnQf/gNeTiIA== -----END EC PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEAsETvm3v1deb3q7Qy9ZieAkZ/5RnwmsZIeXaIRLIqMaTaq4ld VUOLUu88/Mkkx8zDGwobsGj9ewFiiqAWEQAgvAb0vxJzbrwRNSu1Xqx4RaoQAjPl CfUGUBgykxKkiFWy//QRplU2uhINBdxmfkshSsdYbA3A0CU7LyclaOXdcV9/R0AI imTWqcfgL/IhfAEuacWRYR9cfRQ0Cn0x70WsL+P3kBcRBCHiI4XYzFqi7UuQh1Lp +e7EfBjxAR1huexsTGjkBLdEJvKbRrAJ3WZ1jmrVg6d6tmoYYBXsKM5NpYu2IvSD h9kys+4CkLaCRdVbpmk+Z1VUe5qJzkTTvFEotwIDAQABAoIBAQCE6wavfXLj/E2o yZJfxjzoRFcu4DehzoFaLjqlaqAMnV5TWZrqr6tA16xqhhbZHxvEqQOmLBVwiuPO 2tao7SrB/pDSAEzRJLnpGVOD15Q+G/ZEYvOEZaLkBMsmQjmVoOIAxgAFKF7DQtdV IxSaiXbKV7XijSBnFJwje2ZnSmaIlRRx73y4KHzOEcCHKneX00UyQ+8xwlWV1XxC sE7SbAPk39mYEs252Bkb+BcmLWqIeki18/JzmMMI0LR9g+LjiT2xhpEjslnLWCcl qM3jonIJbKi1leKkgOEx4w1zqj7V9mMXg7yx01+i4+oA51zXbSJRY0rmgGeWVstU wljNgwJBAoGBAOKGCEwlpN7KA84zlcHhSsgHjPc/SPUPI517L+yOZ/Yix9WWFYH6 OCVCmarOh5groGgmVHuzSuM2Uj8dqF8R2FgRElP3lYMYUvGrwzQC8T5K3us1Befg LAuxdj6XvO9yUNje5Y+0lFNSj6yQYuQZJGg/b3rzmW8hojpVnPNgpwvXAoGBAMc0 1GMC2n8IZtGIw8waHBZHkX3oKebbLep7snFWwqXuV0MgAtgvVJr+np2yIOLj6nF0 Y+nx8A0r9Zw9RPJKRloD8JZOvzAjOcABW8l/Dop7/dO4YbipIBgTF6JNHEZdbov9 NwfQDpTt4jLFj4SMm5lvY+oePQxMJwRLIPM9mC4hAoGBAMFq/rS+Q9uzlLJB27KT gv3vbI9FKy+MQLXcFJyhL+W75vPZ1f2IwN4X0wxEkwT841dquyJwghYmMO4Rjc23 eAoicYre0XwBjfkq11+Wz5SH63XcbXGDOTi2y6dAeyPdcWjsUgl1gFzxFxqaosXv LeYRnEfYrn90sYeryHsLYTc7AoGAAxKykBB0NG95vpPAiX6BnmpeOTYCp3gMHkjo OM1g1VR27icpRBJ+2KFC6yXbUgS4EiX8gJhl3p4l/NIJJT+2FB9pb7gpROHWOzsK InKeU86T3NdEUqfxQc3RmIReAkvgr7IpTiqMfwmoaqYXj7DnmZdZUDxFLtJh67QI /xedKGECgYAFiMLb364NlviyR8j8MtcdFvuehUuLuMCwe+9PW03SC2rBppHECD7i g+bp9cqoHobEJrJBwupyMQetz28t5ev8KUwxY9YV6tI0xl2KrKefJWxsQewt9luA 5brZO28IxPYtfZgssazsoe+D1ISKwHz+Mpkbxhs1pAMC+VEruZFlZQ== -----END RSA PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MIGkAgEBBDD0YH9MT+CRorrNlklfX53G9mxw1IjJGwggPNBzvxUrPKVZODwUwQgw KEYPZP8endagBwYFK4EEACKhZANiAATSbwIWACbzIHnQNDnCjiC7KNUGO35xz5k7 SkFxB1IWcYGtgqFdR6ChDsi5Svf6dGWv8XTJPJB5pAkbY3Co0t7rTZbj3oXJvO6a Ykq6GeHm24QjSLrWKCaGWLeb+u2Qnx4= -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MHcCAQEEIMgXyqUOga8xOMxjdOpHGs//T+FTtFrhpr7BtAxHlNcgoAoGCCqGSM49 AwEHoUQDQgAEwvZsoRzivWbMqZ5JSalxqd3zznb9UdEvLTAKWefEN+dCUzsnnHlH TR8bUyJCZ5JyhC0dJkdMIVt7OqzRc3ir0Q== -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MHcCAQEEIPZLTrferNPOKvIFwGPbC5N7eQpGSwanQyXPwri4D3sioAoGCCqGSM49 AwEHoUQDQgAEIK7tHjh4HbaArNNtK/8Gql5c/MPk+RF31mdCFzT8khnCfrkATMnN /2nVnBE7mQ2ByN5oD3Enkul+ZJ8yNy479g== -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MIGkAgEBBDAynuLBhYaDzMN5YSq2sTfh9QU8InJ1+Qfpi/fD70pzNKvCzoD00RoD Z2rnPu9W6MegBwYFK4EEACKhZANiAAR+s5lIX9rqMpuyw59Vi5yqPqu6N7ttI0tk xiIvbVsnutOsSquqOS8ezLmYW69GC+CEEJffixgei+cHZvxUHZxK2CKcZmY5sl5b 4b+y5XeyuVijeuD34pMTxuGVL+UnwKM= -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MHcCAQEEIAQvFD/aQf2C/phNLdBn7b426xF1f8hU5dsXIh4bVuZyoAoGCCqGSM49 AwEHoUQDQgAE+ftrztnAlMnWIMKKKa389jXAJ/jG7Ei4C3bYEMzq+HkRGYLckw6/ gCEkSWgu3nrROZFsrzOvrS7lsQFcENXT7Q== -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MHcCAQEEIP4lgf7xDH0/D4Uabbxm0o4XOU5OzPrQCKmtrI+dtDBHoAoGCCqGSM49 AwEHoUQDQgAE8KgbaHfV8SQETK9M+G73pSehD6xVAIFXQSr21mu2zZ+ArBN9M3oa ivfHwqDNOFuoOs2udjQ2t4EHrdpntfi1IA== -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MHcCAQEEIJW2iedsLhjfSiep/rmGVHzi5Yqbr5ZBnazqzDFG1B6KoAoGCCqGSM49 AwEHoUQDQgAEv0uoeNa51KhlDOrT47baG7tNb6XUaV/YU/CdjjLwZBOryr9PoSd5 xXet0xZDVEIEzOlwHIqN8hfXhW/+djbsYg== -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MIGkAgEBBDCLV2vlo68Nkz3jpNLrlS0cSaTVMnTC3AjYwCVTxJAiZtsu/qNeHsna jLZie5lM0uegBwYFK4EEACKhZANiAAQbNkZ/DhhTcNpmSbeWZQNRDmZpLF9HdaOQ lzr9qcOaQd0x5WKpiRitGbsp//tfIPKS0iHlDPahaUFFgi5ENVhAXPH63Ost69cW tDBMWJ61MCvCSEXCeBjSzdKbcTsBGHg= -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MHcCAQEEIC5NTQZuaorDdgc9pi2IKIOYwIwJn9zOlx3bq1pK5pCQoAoGCCqGSM49 AwEHoUQDQgAEncu/iRC3P0Ta+NrvInH9CHAmVOqhinVUadTmyPccogzWMjzsr/+P P8PklbDbITpLDHNylViKpEM88diwcIf7Rw== -----END EC PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEogIBAAKCAQEAzQWaV+6t7ryBAXOFCQbs8kvfsPl5v83RDyPSAYSYCr/Rl+hn FbRwVAhoLLVIXkLPto7BWiORUfuKN0GB/zQWz5lvnhIWouk8Itx41Jk+zTr/mwbI qmFY2UTjF0NeAdgFfU5UCLJPXcJ0kxkHx/SUKn31AMQwMJlrc4WNiGvH0YZVIn0d WkuESiGYJxw4w2Vki3EO8j9MrVpibBLdC556rT+RFK/wIWEVjwKXEKkg8N7FKNc3 EjB2kCz4erVG8iUoKrNWLdFcjkWWNuylX/aZEuRljg9KOt7keK4zGspnv7Jg5E74 Fm6LdC+HQcQbX5yjsxlCg5nF8vOakOCnnlzZsQIDAQABAoIBAEYQvR+B7SUifL// N57PJBjl/ytfBtGax/BxoGpuYvuBdGKCxP/w61Z8jQWCapn0IUJVZRSmBRrMaP7b P071ATqvSCrwKZZBORD84bpeKM1AdWwIlHlNzWxrE2S23CCrL60UILncHi1/sBE5 Q6R9HEmtRBaf9YwWUldnc+gEVYRv06jSl7Oh+NNhcMpaY+q1O2n3cd+pQEa+7qkh OQurXa2JfsQeoHfLIeaVqQG5BrxiL7+n9HDsQuKiOsUlSGxCMZ7NQy4tqFrM5A69 +fxEJ2XYLCamsZ9W6gNIUMJU3lxjRXT4xZFUzzzXdK2C75LqVw2FzvstCHpcv+Bw Kxb6PAECgYEA/hVy6BTyLZvC7HplR7ItfyeIF7utm2TvmWrvLjZ17ZpL3ddZmRPc ZcISMH9u4Q/s2avMlVo9Of8nhlvK8TtJxVHj6STxiDd+opr8Rb+9SPRlgDq4cCSN VLvUkrCRSIOots1s/jSFlIJ6GM3yObUdTEiMKS/IabUU+GHNGQ5mk0ECgYEAzpFu jvLrNzuetiWhsKVlgDKCv4NX+45DnAyVDl3egL33mCeXvINVO4CjACwMQs/BSIUU jUtbLDYSFTZtLh09pAKN6KVsQOtyGJzRlX5AhIyMtBNDjgT8A7pmerMbEHmvOzEW 3lLEO7NCFZhdxgebp3lmhD6pGJUXFYXdWWwRWnECgYAHYLoQcSNDHcXANiGgvlTB 33T9M27sFzc53jgJwH0WJCfVzj4EyuXYcpUyoVCn6l13SJzNLWyftYABT8MJ1C3l M+aJS5BT40CjGhr/L30glDAqVAos/3K3JikbBVOCpogMntRuYToLwOootDo3YMH0 CBtByuhn4WE1gSmCc7+YwQKBgFEMeuaXpXasa99n8IMQwjyElQxzimfnL9vgi/Nx HUZCQw1uK3kJxr1sAYilv8HPJjVAEgpGUOWN6ZZtHnWDf5YEco2fqlPmjYPes9UG DmZzhxl4nX7xsbf8wQzPjYTvWbPN1P0yWFBcS0eR2ulCPu59EZ49v7cneEE3ntvh LQXhAoGACz1vqNW5nJauttk1R3Y7cExO7TgPHve6gkBl6T0WErwdGyX/+xkHTKRM qKfSHRgWWIj/6ZdQH9JJkPCZOhnlDlkEmOlsnVfICOCW2DJTQY3C6s0h0sqgWy8Q GxnEU0q7vgKPS/0DagjvEm/ydtXJCzFkOdCZSuMk0hA45/jKcsc= -----END RSA PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEAxNteHHdjp9m2DnJlgAcxg6Y4SJa4QrYJTeShOnMXBU6LwmcR x4RJqbJcnPTlvOaN35d5G/EwuZthwFAxaYTjsb2nYyTYnIqlP3yhUKZN1hijZ3YT M5dXSBYHPcOq+rVMbZ6Lo4QDpD8hTq6M97o1heZ//c+nJNmXB7T9Iv2hiWcid4qN Njr4KMhpC/CQ2Ctw3VhjJ0UfQnJzPRVdzticUJsGk0o66OJezOBSUfa294S5r2zZ ucSyJpv56dHx9/Q+cxtXhDivUhiKx98ezCxAOxZDWNXpDgGCYKQo7hRV1OOKf4Q+ hf95DTuGw/HvfBQmIY3jLnxiSM8MjTQVq9iuPQIDAQABAoIBAQCf7cRAhjIdPH9u rzuMzstINDNHrcMW14MpmBPwQ24xboWWs1u7Ztrdlb0t+rvmQryCKTJIJCO8tuKs dbofCspdLUIfBuFAFFd6A4ue1O0pgazHMiMZZ9uOAe9yG1P+CGqGKCcz+d1ng65Q mPiHje1L0l6rWhdllazgowaAdePVltgnx+Uo3bGXC0Xj4tBJEae3KqSsBXzp4yeP 8PuZEcQJuFrvzQM5nwpm2FT2+f9E5redWrbRRrkWY4BtbzTOyyw+N4J+sSMeU1tE dBwuGAbttbVpxIOa6mXST0hf9jSqjO9pmY7TXINY/Eu86VyK2Sv+hw1f44H7qFHq 74c2xYEVAoGBAPxELdHeQdIsXSoU29K96KwlN+AVCwKmivrlSrZ1bExVuFUGRVGD HmKU18SSmHaccbpUsxfKEEou7JhJnnaeNSF3t4lzu8XTzrsVujDfmCoU0MXUzyAY UkZH45NziQkeQHT+KKtb+dv+4grSKga5obzB8MF0XfSVD+CwkzAb8mXjAoGBAMfF PvIV5AxNWuYJq7U2f9P9ovjeFjM11O66hPiz7gpZ2C9CT3xjmId0IvET1nuPFX7H i/gCP0N5IcSaCytQcCTifCA8D6SjcrxB6SbIxW6xVtF5Jpz1VCVOt+gesP4T0OQw vpi2j/WptkXmYVvjubeWyXpMUhZ8hhYW3g47ldVfAoGAQdhB5W+P2p39y0gagI1V N+mXBgQ4FX8G86n5sFpB5ELTlE3Ithf1TGHxV7uz0/HNtYb6IBF74wEQfEdq9ycg UxX+cAAnWOGKKkbnjG4wN3urape7YHM4tmN5QTl84UZmKKNWVjPxqbyDn7NviMXX M3+jqbsH8xkdRdaQ9JO212UCgYB4hezy+vgJ4AWOMZlxi77VM/nF8Z8tKDYeDVO6 BDwB7LB72qK/5gqY9h06mwBUrT+HrHYqm5h1abhQt6szZ6Uw6599hx7c8mt/Xrh+ WLSckstRN6lvGqe4lmRn21RnBaeKdEoZMlNqIAjC5TopyRs7wvItIayIunnfC87O gW5lOwKBgQCt1eFk+rEKhVEcqniquX+AIAgTXqpYyJZgM8ayKNPfJTLEXTXxOD1S A48b0hsQVJ/QGMC9tfZDaKKEYFMVCfxwXptVGncHDLV4538a9XG8ZSxRLO+yFnj7 /RgS/fabfJGu13ZiU0TaPHQo6BK9ck8MISMSnVtKELuK3OvBimQgWg== -----END RSA PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEAu3SzNlVEWda11HqDD0RpXqBmFyNDupQATLuoBGwCnbOiUSSC zVjwLutI6ZFg/nypgPrJmf0yV03L/1ZiOFcP4GZ8KwWlTKQpjdTkj2Z2XGKAFWIA ry19610cMhsyxx16RkVx7sZ0pv0AA12yGhZPavOwBpEK89Ct2icmzOVBfer7yDWM aS7IEkU6YqRGaRaA6C6Pb87pEkoFc4mEDTf27Tfn0K8ZJYQP4QBd3Ymme+CDkywq y9IF/R2d+8aBG3s4IB3KJTbzZrLmUocxUtnQB/Cs9ZAZ5v19n2WI9wkdcfYBemYS eWoneNy2TgJBniGWJpk/l/M9deFbcjNI25lLEQIDAQABAoIBAQCwWWs3VCQHOFy6 1b5yIHPYV6FzZvOSlSVrCqdX8ZzMa2/qUiTTtjXOjf577Q6ImxKDimsaeP5g74lY XxXr1svS2dc6SgdmAJIvIfcbiNMUun2woA/wvSVWxLN/1+J/O5YKgc5bSUv4xM68 W+rva8mu3i3dH5pkIQ9MycRQweRI5aln6ErBJ1LFqW1Rub+MlLQaFjTuemYpbYaa 5X5yfcYJQoKvy8qMrfNk4gw0PWimx8pD9sLNDd+MucTEqO1xVrxmQb7b8pixlYaS tiyVDmPhzU1xjtTIDgkuzzmlqExxpB7yI4z/1l/vFvkDdZQ7T/853mMJ/sdquwSI 9/hhEOABAoGBANsdQEHVOApTu8WbvPMFWGrsnX6IHMS1ajs4/N8+zIo+XbJy7hMe LwEK4/xbfX9c9sL0bDJrXUCzsO6IbPMkIdkmgfo/mvFFIOUqOV8zKi8sKPF+keWS 4QKXlDLFUnThKR19ig0/YqLkt13nFKgfXAg7tWQlLWDaNSipdvEeEA0BAoGBANsD IJiXhq6LClyF9445mLrUiN+oNiEw9BX2ka/xTjc7RxRYvHRmjGxS7a5BktrcT1X+ FqpCCudOt6BeNUOMnr9CsfSP6QEPIjW9bnOl0JfMMBrv4Q31YSUErU1OCCHxb7iS OpHW5vlOxF/TDI9JDs4pN1zSNTnvYRiqtHKs8m4RAoGAS+hmSmhDcdBwTJUXcFl5 uBEgvqUI0lzG4J1tfSmUUpAohZmrQJREVGghc1t+rpDWK9PhZ9YqCDA4K2q308PA tinQ/ZDrbIo2Sy3FkmV3R8BUrtTaVl379ZntjWkul68pPz4uhUhgM25o1+8mCNhU WcXVoUv/3H27zMpomj9/8AECgYAZXGpY4SsKaTVg825wPMEv2U6kP5FNFKMfK/dA 3XuGL8oSVBg2jm1yWcQGKre7uklBlvO+8XjbwiTHYEFguhbj5PBAdq2vnrYCbRYu NCRMf6uOYvq3qBOAuuLqkb+lVpTuVZiMrMsAUZux0PmiWf5p5yHvELRzKgIfXh0Z LmfAUQKBgQCZNewiRXThWGKs8aziFwTSXULSyw+gAZ5MHtiR5VOrjibu01lXT+CE EuHO+vEPFBoR7qeNvxEhk9NZGDPbxreewb9EUNyDbOlTP1Jo5FVumTmr7+zYp+7/ p/nY5zjMT7BqGUpAPk46C6Nt9KjA4++yEHSHJB2yTYMFcDxEvS/kNg== -----END RSA PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEA2JDsUKINcqDFu0N+bpiw2OglKQ3E64fNtreBVnurQilcQDp3 2GcjRJpbfYe5z7ta+y839ruKKEYMyUdC6nnsD2I+CH/iNtcJQp4YXGw8WCU0YR50 Q7gFf6rrKwF/RPye7fHH7DQNtistLEb+JgQO2BBvDwVAMzvtPt+u0P5zsTBCu941 SbHXPPN0zIFgyAz3v78nDXR3VDrU10pZq1GoWxizkhYC9sum6aXt0q2oQ9bapE+c IvNeQFV6Fi1RubwFCK4Vaqh18KqKB93YkbiCJ5HDWBRhi6jMGRi1yTBuiWByMmxl +IzTogBvPRoWgGv8NP9H3oTXV9ZNoxTi5YDeGwIDAQABAoIBAClBqpNN2+v7bs/W 8s4U7pPT3chtZBdOnsTxPoWAN8b55CYkPVKPi2t1UHqgkaheU93ISAwL/Czh82ug 1MGginT/zTuHSUwTOSNkxNVOlUxhghICYDnKY9nHcNeXiGxXB9vilKiN3hLXNNrb h20slrtYnh+pa2qXPwIcUMxlvRqC8mBqFH5iX/WPs6dB99R3G8rQk8vT6mdTRost jXaGXevLEKGBo3gOZbeqeOalL+7N2UuYcBUmPnCYPHkdsQx16EojBgOwpqtmnYvh lJpMzVG4Pa7+DC+rZoLLdv32IGTcaO9QCgwde8MGPCshseQrrx/8OSx3hCFyvdO1 ZtrpLbkCgYEA83GCVFLqDAgHsAAMhfuwjKBhu2D27FCNGwgoxUMh/dg3Fq6koqfB /7kRaZwth5unRK3bDOh5+ikU7XQC9EMKGXxG8XEoHoPUgAbJRKjcfNni1hWXXR1q jue8SfhxjlsfK1kXCFOy8/LtuJSR4TpOwq6FTTIB+Jv5mJ+klILXA88CgYEA47yE 6Q3E0EXNn2Dq5dykluGD9OxeP41vZP4lcSMxEl0h8pYDD9rcga9/8E+OKU9iiaad qEXjeEAK3e1PvdpJactduc7Bjy0U2IQ0aVgw8CcKiHmMeV/LvNR5xIJ040byUVUe y7BiYB1D0W4JBH8F7OgHvqnKW3wN7tkCjdH7d/UCgYEA3lRjL7nNsJFA3BcfWNoF YlkzCJtEx4vFYtOv0IBAMgHeRePXzgkh3vdZFLeiyT95ovqYnJBQngwY5cfWztfP CHl8nRK4Di5dy1LnS8JgI9ImHVj4tPyhjcPMLU4t/1HvBHrH0z4FqE/LlZByLl0/ AwO6EEdEj5V7fU0HVO6tifcCgYAsXGaPdy0lXNOG/jwDdo1hDqDDrt9VBdnzFEZ6 2V4Ps7CPLoV+KyXU5TjIuNZ6WYpaQehoBOUgYWk8faOQ2dp/Dyw8q3esyh1LZ8VF 1/YAcbpthy/D3NM0/zaQ/tCCDSnaifgruToQeuLhAswi4hNnaHNJwo02cN3N7tu+ gG65mQKBgDKej6AZgxg15uOeuLYnwLSODgh7xR4q3HXNZa7/BuMSlIYDG6Fl46vk u+NfkdUVWAmpQM0E6Z/ny9xo0XqZ6Kj1Lbe5a2jLBXOYcNWTCT42JBGr3+xjMvjN v9oaxkSmqBY2q2VmW1QStmiVbzwx4rhzPYZPalF8kMQ8lpPJEyOi -----END RSA PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MHcCAQEEIC32gyVx4B/pm12b218jjtpbuUyai/nWUp2bSCWTB+LBoAoGCCqGSM49 AwEHoUQDQgAEIgl/OOW/xPR+WNNqd+WCJ0ISH+Ipe9kkqYCsn9ExHcpkkEC3Y18o WcIJi5KJdacgcAaypwv8p/0ALCWbwODhUw== -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MIGkAgEBBDDQ8EL1Ql3Xa+E1IbporiXSx4NmWELf4ua/xNOzaygxfso02+cx/T3F AdRwsuxWcXegBwYFK4EEACKhZANiAAQE8Q6/jWC5GF2FlgCx41/7BSrkFw7MCQi4 qtQ4S/MGuYeFl2soeflP8c9l5jdY4RoIQH6E4IrIdgFGBmcBpg6LhfsbbqYLD6Fl YSag9a5NqAFSDs5Fl1Vjr9KiNDVvAtc= -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MHcCAQEEIAmwnnMH2TH0m0NQ36cpUy2yUh0qw3xsQP4dQsM/Vz41oAoGCCqGSM49 AwEHoUQDQgAE0ZNhx7qh9q4WR8yqIZ6sbOQ79yUn+QBl2LVZWEHwLBd4kSREOrv+ wL9/1cZSnNoDs38GP8gdN7WcERZE+hv9kQ== -----END EC PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEAosE/jdcUBGBg+WUXt6LGktd2aJdJb0DbOZ4hm5XghOp2UpbE mmsoNZJxvG8wMb60Wt3liBZ2WdwdZqHpC2HbHD6+7Lt/iGoDoHsSkt/1NWiVbHtl ChZzuQbH3wgWUfsvLFgte6wX+1Gjgg74t58zGeQ2DzvX6YoYmsYCeO5hNSOCs2LY NZD/HQ88B3TTo+YLU7x9lDNN5LsPTgSUx40AuAyEE2LCti6tzRJHWNlUz2RWhQu0 D5mwaikBfK6wUvOV99X8du1JF71Azv9J8lqkswBgi0mSSmMEOO4quXLlY0CKpSHf 4qOlN4HOoIF1onKoxhKMtghoMIdy1A9tJL/FwwIDAQABAoIBADseELS3xAiW7YKJ SuUkFhbudo8lLMJhf3/dRX3bIfOFqrbzFrS0aaWT7QYyKQJYr/A1m5Mj/ZdEUdWe yCSfRdRrojQhIwDs6SZYrfV1rf7ZXzVJWPkiEKTLprwHlvvuTkNAQD0k1I0wKUEr qQIhrJEiCNTdut6Uj71gYTOF+v8us18QNcwqxqptpgOxYqgiNccNaJ9MdJS585+A 9BUyCGNUn1JXLeqdtD4wN7KK0UgjR2Ee3VhM8l+XGzd/1lTdyslmKzBENez6IHOv CB5QEjNjEy2MN5fDeR+gimvoG0mvAbKEfFcM47ziWS4YrcCMphD68ubngVO9bGAF oK3t1UECgYEA16OXEdDSscVhsunbe11a50UAYl9ap+5JXQEJZ7TwKROElCduz858 /RJvLJOevfIG7oQqEG/0MrwpxfRDa2+JCT7SGcm2fyYLxbWTOaxRGKMHPk4LZWcg QJ5DlHu5eb61wkRKwcGKBPkM5nMMkHEmfK3GCRElP0f/fxzUPqJNJmMCgYEAwTey r/Ie4A7F2IJRK7HIxfIzyqEpAPjhK0zgz8Te1WmnCqgZq9gznIi7wQqQvenCHMDL oaHhUbYcdA90+1g5rSIi7RIzcTijG90QswhGWE8bcZ5vBMk+/ZmCLvRYAh2WIojX 5340xXzXBrFYgZjPyMvLYYXpTEEVIT5bD1Pd0SECgYBPYtNX5LfcaF0KX9vEc97m a1mz3YTjc+8gRSRwQIV1qdDSNh4udMdA58tz7rivFu4EWzWdLYoKL4l1bfJwF/Ss KatxgPgloR0OYUVdIxoL5uDgyByb7TZLc7hPbqker938MeYPpK+qGwHryQkkF/Pi TJsudVhwDpJ5+mQM1vVuHwKBgQCjAdR0b7XwnUX4xOiqDlEt/ooHNzOaqF1+5Fr9 rj+4mGvep7cQrVPNieWslLdMIXwsOdMRx7qJ7zPODoRI0EPIdvY0P5i6umeRSE2g XSjLs+GZV2qeBRJpbSrRZj8heciB1iUgHe9zdUELWm8q1rrl0lkBK7KJLJcg9rRo F/8ZQQKBgGnq53Cj3NveUQn7+iKZrYTJM2lzxxaqqhxOqtMWe1ZLDasTl012+rno g4jknK8gmUF8ARO3xQiKEE91ZstZ9rfpcC1u/piPzSfgQbMUs7QSJb1XkotHX0n6 hTyxoxRBLf1DN6amUh5/Do+6kFKZ6GU69WBOMhyklQI8IEIHshA7 -----END RSA PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEAsoD1TWDBOpYujE2RAW8e+TEMFRRAK4fb0gDIalpGolmwmT5f TlkNPQA5TS26TTu3fe2aTiT4ZM47INBsOglv/ytUG8qCnS/HHMBlDzfUl6tXVQec LD7Znv6gOpc/ZiV8eo0f5DY2oynEazdjXM9g0OHViWWaRtyZIS7eIfF/gyOZiIJj Ri251PifdoHfrOvngKDM+nUVr4vdj6QTy13sz8kdnoP7fHSxPRsJpnBhJtSPmUlc 0WnfH2PuBUP74PlR67XsDfigo3xXc2U1Y5wONdAVZna61MJNnaDFeJgzgmrv52le E7+nRe5oGnoJSjbXUGuSRlQlas4c6HwA4tn/nwIDAQABAoIBAEXSgaFBvnOPOSfy U00PTTtF/ybjo/IjE04CtmI7a7Onh5d5uUfpN29r/f39bAk32Z9taFU2yt6LeL9u J1dQR7m1FhJE1XBstuK9MwqP2R12jROahXEdKHyztrMUZF0tPpKlTxsyRY7vEICr yrcL+x/ZpnA3CPC86zz6mzMFxs3hYDW6fBmj3j9nLsm6eop7QiEgcpEKCYDaoc5J +dE6icWcWDBvQc42jV1nZgMls5WfIARnKPWnQx1MnZPEK4lBn8mwy3p/z4Ny1Kgv fwQO/iRhFJ7A6jQgY/pIIJBw+14nHcP1+te47Ywc7VOIKETtwSx97mrHSghgZqN+ FUZRcHECgYEA5ztENMZ45whXRtf6IQbKmkrQUeZ/cZa4nePZ0vvomvJnHjhjEOT9 772wauhH3SA/cHwYlwM8ZNDwusR6Tk+N+BUB+XejUjSgWWo/KtQsb7ce54DfLHFx z4Z08zOzp6kV9uystRBYIJDKbmNz1DS81Syd1ai28sEwyrJfSzt6aJcCgYEAxZ/Q JM+T1GT6SFzEep9SR03vhXqX2pLWRyle2+Ll7QLcQzLN5cDp5IUw4oZRRc67VTmK PJrV63dTqiBxzhv6ceH2MgHxdnc5dqaSZB9PKVdiNQ8Hru7bkkQmDQDM5oibgcgZ Rop41v9Vl903mhCiCufI39SXgfABA8J7pvCdujkCgYAzG1lO5NMSFTjdEp1ZMVwU UBbNE0n1vB9f3l1lkYHuxUbfWg0jTcmGdIGKj35atGbxIKx6rB9sFPYwAX8a0eCK BXKjRbsWT0VlneMKP0z3AB1Xg5dQBl7mREyS+Elr9CZDpjnh5xPjVr03Osn+DA30 e+ECuUB+VQ7IrjX7tdCvTwKBgQDB3fQPmH659lE82Zx5en/5qS/Wbpw3dKK2bpQ6 +0x5hLvVRCqOQABzCGIbZo6l/5bwlSDSMUa31niBxZA/FF1MiNG+3v8kKvN5PRER HVHICYwy5sqvxmwqAaaeTPG1GcALweNhuweuSg+Kih44iiacsiLxyRjUBEDKkmhB LXxdqQKBgAWkaaogCItYDGvZuk9f12qVVOFrLxPuuXcKux2i3YY8wj5887aKaG4A jjx3GNdXvXAwZEQz2dpLGXiWMgqCxr/njhuSAau4JQU3c485cNVocBj7ssaqdPsE ylZwhyECAGQCGhCsQMXWcRCPwv/bb+JABkwJU83a3wrum8gfIiu0 -----END RSA PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEAuJIGced0a/qVKq+E2Wd0ckYKBNCevG+pAMQtp6Fttq9JL8BI b7zUSLnXSIVOo/KxzHPab4hs6K4tXU3XfN2367txdxdfmQ+MW4f/v1bcgrXbfKLM HAae0YEQswjdJcyBdMDixk54dH0ZqzYD2TbvWsCWS0AVM0p0pyQwIiUfiHTF+8FD l0rmGHnJj0HahGPa47h7+hpgR7R5/wu0TZ60s1AUz/k+6tpZtKpzjIGXKT4qok/k HDLGsmiMLXVoCFdToo8d6HpBmgRJ7/cPl+RMG7qSzuWU19pPRmnRL21Vt7/FmpuU ngq9VzgldhPGxkZU1FOaW4E6Vm2oKMO6Xq2P0QIDAQABAoIBAQCw3i4S5Ouptb1P 5FZ4Ry1NfFSJfKlAhff75gKiCo2qbJrDiY1gliEPeBcXRbewYBeFhteh3agP6SlL qhZ/b7CZ00vOBbX0ZPPpmo+3ebNiBodIDnFtweJbfUTVa/8QA8NicJxf0D6Z0m/Q o7hYZM5FtxvPDJ/EQOs8Z+9AKTboeOseVu4rXJk80s3xRBb7f9ouYpkc5LgHlh4h 8TYB+L8tH7sRte63X46mZXDev0BW4TsmzLxxCSCVAQr+RxxPXQ1tr0cvyf8i7CNR WcD0pXdlFjwspUNIjIwT2hPoQBoB01pdxIjUX7dyMK0BAtqnq1rBADoMu1moAnCU lV2uyCQBAoGBAPN8qvC0jRlsoyoM7uRNsCO3ujsOPmQS2xe+ZV4rcbaX3J9Afjk+ E6U8IxoVvuyeWHbSps7kkpoxg3ND6fssezNo80X/g3QBJmz/8GCpc5FphVmDn0LI wSTPdpfkZCOtjh8WSkmPZ7zF/7OUcBZvs+X0dArvkhopcYWJYBLspd3xAoGBAMIO PyymF031J5NJvJgV2gzlQgto4VZyR0g2fokfjCtrgYN2g2B5K0iYgLuH5Y4OjBz+ +HOb7dALU+Qo106q9Hl39xV1NWMMBnIboUnBhIxQTgTWKi+p9S+VNkFpaZlXf+Pm w8cercfbrYDVpcLNO7AJbmfrF72KOdLYXjkuSm/hAoGAM6Nt8WypPAohNIrXo02i nICbm2iy7LBfDNMRVn5qOGpOnOulmWhD7FgrrZ2NB0uxwUl9nQU23kK/+RMfLWjK nCWW6nJ9I34W8yj4hteJLf6uDETw4s4GwFLLeP00C6kEKi2lBaLHQm7PgvtpJij8 gzlr3uHeH3RIoiR3XqwXpVECgYEAimsVHuj+OIpFB2eSUb1MguRI3tCZ40qyk8zj JzZMinAturMfdQIZILg/IwUFdfXkdY5ddEFmOX7LATUslx2UMsyifzjSsurR8jTJ ME4MGPXzILoO717A2IcLY08olst2Gv7w6Sh19tg4g2xhx3kTOTcQ/KkRjw54vm+9 jfX5/KECgYBoPCPT3uPnHZ936QTO5dFawn9zr60xk/4eUy+gvgkUbmm5ky8lSQwo RQ3R3T0pbuFtgNOPSjMubbaPuJQWPK4v/VV6/z5hwDB3VILIkMJ/gWClic6NL3mg 8r+qiTCsucvubzZJ1CpBaaICFydVHFyLsXR/+PjQSx7LcZDHQ6Weig== -----END RSA PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MIGkAgEBBDBZxZSO/kEbKdzkbvKRcrSKhIRRpvn9L4Y20MIo4aefFebCRs0ZGzIQ A8IcTgQBnGegBwYFK4EEACKhZANiAARI4+Y0v/PHtjRyOUyvJQcrImokM5Izk9YE HcNj0JJS5dXfHEdqqSMTqdr034XvkTTV0poVNj7yXPR0YYahDBsO0cllDFQ+AznC GPNExFLyAJaVldrbRK4K26Rm8KpL/rs= -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MIGkAgEBBDBWzk/ZNT0C34tqlCwn4NkTsSyu6DInKJZZfPR5tfhlvIB/YXvQeoBp AbXRCwlYTXegBwYFK4EEACKhZANiAARC6Z+kwBeK/Zk+OF9j16VfL2iRapuJK1eV rgp+mhlDh607tzTIPlgw4glG2TYt9iJhSiFuAEWqUGUgdxEZfQjdh9i/k12lfYM2 Yk1phZ/A6yKnajBlSBb6ykBmfHiALNs= -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MIGkAgEBBDANCDH5oGrrzN1/yJSU7ff3MaNuV+294Ys1//U6uLwHeHJnhfLU0v6l RebFooWtCdagBwYFK4EEACKhZANiAAT7RxiUunBnWtd1uBnw2H0uHS4xYjJGRRPo ZqK80wNWsH/Cb1CntNIRTdGMAmWPmQ+GeYPCO5Rsrz4fRN73vg8BslEUdN9f7Pqu rRijqbrwFSVowVzsLQnC7gpajrXeI9E= -----END EC PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEA12DFVXhpCJ68V9rq2Zd8naTdKxEXLEUVfYQ/1jlF5RaVasEJ 78Ri2lwyifH3g0K6JOqHo9VeU+SAM6l3NRgfKl/3ckIJM4sTOJ4RzYaQ0vBbcTGg GS08n3AR2kbHoIlWK5nktZLqsO1TdOLRc90cTmBKM4cGL1R3X5C1/r5BlyA2lDn7 UdV97qyZlZlctLs2AUoywFhiqf/TVt0CX50yDYmfNIYow2IaS2TQFYuMPHiuaP37 abKDc84lGSZfTZwebMO4DCvfjiqXHzpr7Bvh+Z9mhuEgJjD1NjG62u2AarBALg9C uWe8ZMrglHIDL//kk0lHWSLFFVSbsaYVgjM6OwIDAQABAoIBAARHYeQ+zidjr+42 5S+JeOpQ2iv+3Oz+Ol0SAYqp/J9+gV1rlFz1E9mutzpSWk57RuNw3Vz94i/cfEeK eFnPrt7SpUHZ2gDyJGGdklD4+WuXZtmq2LlnUqsAOPqTKWghElsvZYHN92eob14F G5AntmZAN3kql47dKLn3UAZNlVQBQHc2UCFmTHqbnsuVLnBt6sFvF/yBAXPI5+Md U9jH6+9zzZHG36fjJysFdcnQeKdSssNUWvLwmCSEKtAHgdgM0/JmXAK/w+BZ7tee izThr3/zGF3omtmuk42UFL2y80TX6xgXbUz4JrmObUyMO2BgHlPAuvkh0C0rngNT PMRjF+ECgYEA/6dJ9Ng7Ef0tJCfncjz+Spswic4Nn1OhZjkcqqmHZQ5vC7B5YhAe 359BsI3c0oTgEEP6DwtZ+mNpPZjVLQi+FgbHxRmYCbAFGeQiZjHgNQU30pMqA8Q7 91HyfQwPbeExZk2Z/sF0fMIZP2AADNJOrFiN0Yvzy+WNAfgR//WcnYMCgYEA16uB p13974A5lEIMwBL/iZwA/+6OzWf+ijZJZQ9lfOX84dp50MZfVcWTCaaykNxLhotu b9mFJu26Xp1aqLi9yaGyVQo3TP83V/YBDU/h8Q6igHxfRNSAvif02yXVn8BQ2qlN RkAFZdZgD4OUMHI9d/W1BoqSNMQSehSQhuBgSukCgYBuYkPrhQWUUdWQ2+3yBGXj vrgpeB+noIt6wMQg6Av+1UmbKXpvnfhGo9PQMKCdASRhwYgRwNv74bqKDxhUVocE qa7N6qwb2rWJJVi4+WYOXo9oy4QDllIyCl8CIRf0YJxcyLrqJYtvZrtSAthisNep UJ8DUENW0Wmd5QeYlesmkwKBgCLx9DklPq8e7LV8GkrJCUTH1VWi1tqrfg/xCeVp ID2jml0SJGjSq8HfGJsYuphESayMTSGscinDnU4VWwo5nO7d12J2HE3KkLIc90Cr 7+U6RNRi0qD5eb7WBJO5xqpy4+b6Rb4bQ4Sjvr7kyA8tg447btCXhWctWf0T9fMU yiV5AoGBAMm2CqW6X/EGbAZYdSHkPCqvmp4zimzrb6/iPir7FjLoBg+R4xT4P2jS 3q2NcbRm/pYAeAsXZCNNlrijVoLh7fHBUxez6FjaKWTFKrvzoBOxi9BAnkpcKBZ8 UCT2Q6wqtOUx38N45uN0tGvFE2qb/Qtlrt1pcwv8e51ZqnmLEMiw -----END RSA PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEogIBAAKCAQEAsQbUNzgjVSqrSSIZfj6v85/JnhMK08kX6HzWb8R/t2yXS/zY DCAjc5gOTKcSsj4hB0rJVDfOiKkIWyRpm6Wu41X9dNV1XT9QKsozO15FcNiDViuL rdANdEchi6S+GwpfyXFnjkqDuAsELgpUXC3ijAkoF+gs21Zg4tqHoXQ29oloO9ka EGVvAo6e2aFuVxHAecQpLMJCESVrsDdEYrpdmdf3iWVi7pS/XxJczAlHUmhoM48H VgR87iKlgV4bqK0Ppv1/abSP2NpAa1zAE7Im/ZLMyroddGK0qriUk0jn8OD7y1GO 5TxJrUauRN4oGrzwSYvUTmmPoLIeQFiCPKIMvwIDAQABAoIBAD8raqrRs3n+oeSU 8HfmMq9Cw5VOwjxUs91YPsTfX5u6ejq5XPbmuP/UsLWVoMxN80dA3prY1zBY8Qxk 7/KEquWgl7MLQLgnkZnTUXjL6QedmzAylcNOTJ7DiyrjfJr1lryxZPyXhm00MSek s/m4vfCui8oMJYWXSzdoN6HbcImEYuehpGatDP5CCwRKg8quk9GrYGuFiewKpTIs GzfqMXP807fgv4Oi0fKbnU9ZOkWR2n1i2Nvr7aKm3WcqWg3KDac0RV2NpXv+WkcU etm4gRAAKF1UwSgn36rGzU9rk4s1jWUxza4yktNd6t1k+peZjDkTtOpgrea3bEor oyB/fVECgYEA1tt9JBxTq41rX7xLw7haeoHsXipxiGjO3aYfCaKSf/meQd4ycwYa eSoUxHyFExqBV0ldylMzuQ2E7VD4c6s2J/cgamhIfb15IAqS5UKgK0EihQfvlbqB cmfnsHzMWorWUFA1B1zSlX6XT9m4Rp5ASJU1n6ALTQ53MWT67XF/prMCgYEA0uzX 68qWWpLbja+9vzsCVybbYe6+OGzY8EnKUUG/215uvSBu6PEZmO06jBViKfEN1rVe 58V7vGItDiRyKnk0fIbWDEs8WoMzK08iU7Ar5YfWUldN0d6ErGSuFFarG/AtYt/D rR+3N6GYdzs5lcW9qJ37+6XVjenEfho48HW4p8UCgYBwVAoF0gVwYBwtzgyyQ3SS LdC8nmYC0gCs4sfBSsxauc8iUp9/gUZf6D85RnxwM2BBmSq+t2cILWg8hiOOnYlP taSt3N1hV6i2trB7yaxhUMlSUYbRedNpU6dOnsBb6dAH5xcCRWYXIDrNVV9BFEU5 bUC+tnaSD6kDGu8RKlB5fwKBgFYuxALqIgkcHG2GM0ehutEVZWpcfIjdoL59yBbv gI8HxMOuLuMrMERWGigGzLdKcVcbgI2/GVHd43710Vgdch63kVowm5Z4KT429VWw lB8TI7U9SuTHwPoXoTFaQEwIFONjfraMUPaAJqYBIwRZaact9jnahqmXrNvBpyZJ U4vpAoGAAx4TFmWlpa9SvWMcmwBt2NR/U1DOBi8q7bOlI5lo19XuvSQhoXjEmxog xHlJmJQfBKSEBPYVgfjYVfmJ4VdB4SSWW4jpCLXxsJptY2w8yAs9PBzhqjMJZD5o m9XedByDUC69cePF+m8GGJKfnz7l8Nbl3hXKNTAP2u4phEzuf3M= -----END RSA PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MIGkAgEBBDAE1+hoBAZq71nZjMYkgWGyf5yVU/LFG4NZNDbQsksrWdMP8SpuStyK 7twGvONHog6gBwYFK4EEACKhZANiAARm+35E988WwwJ5UFZ54HNGc0mmDljbttNZ lvICu1RL/sMhmfrgPY7lLjs/ABsLggU8EwbLivO7vq9BW/QgteYOdQrxC3BKMmbF YPLOV0JuP56HIjEKRUhxi0JqKqnDjaA= -----END EC PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEAsJWuaF6Rhy9V/MbGuPbZFo4wvus4iPcTIel3eqyRFPqcj42O dAhhSd4jMrRQjfBT1+Bgynk9uPVhQzo+yvORp3RqdYA1zHhHqj7ubcgKojAa60hG bJ5tXVLgMz22q2rmAMf/bOsyntk19EQs5h3QjiQqw3BIEvXBTclLoTVxeDDNalGY 3gqd+lcWgNAq4BliqrfCyPyA9QOhb1XaJxePYlD0+8IeVQBnxtXjO9vJTVOx+hKl Yv8udoNV30tiC7CQLoTAKX4/37GH50kSeyYdFWzpcRdYreXzmRADFHjA6Oy4qPX/ EJ/IHMg2fzJqgu+c1AgHmXHbU/gNOQnLPxdIowIDAQABAoIBABoMCizk/ixlpBZk L73q03zLPo963Nz/LPhMms4ilEf2648VP1UIQ2mE9cYt6M/3CjcGpuBW3+7faxhi iA6hvPNpbaalYcomV9PZ8ouI/WCNHftkrtaoy9L/PYjxaneAjirBVYD4dIAP5DCC uei7rx64YQJxFoCNdZUGwzwlSPaEZZ5bNl9660wjHGPljDDelbjSmqmKv+kjSlTs R8sBVeoG1WpyWzN9bUNkvB7+dMGK1uWpvpgNMP4u49ElHcBv+lZm41eYBwQ/C4Jh ksrbJmjpkAf2zEyNPGps190BfP0YP3knuDtQdhTZCM8bxGxZYeOahg+x8woI7SNa ur9QQ0ECgYEA1moz6+4C7ph8ToNOFAetm60hVaEUdBQMkYk/na1o2JGkoleiN53t FWGHHJ/EPrQuq7OphNKzWT2jlv5R5STwysGkvECRbQ/zA84xLl5DqtDAj8vojF23 Yrk5kiOGJJzEK2FhroZsaU8st8/Hcf1wtR9S1Ki3Ze2fXqC2FB6XfwMCgYEA0tUx fbqHabT/LgZNQXGSSvBWihH39DNfCzt5f2ny6DG1lGoiqie9NZ1erYMaswk5/Ir7 TNjBmLODuKDPkeMFtziRQ9nLTsrRI6PNlBLFH7kCO3fuCwNRQgwApUX4ul2M+4NK ck2lEqjfv2cvxRBstKz9m/YoJ0ddEst+UmpUjeECgYEAg+qpcTFpimQ0rpVodzhW Hp6BEM7e55/iL7RSeG9VP1E0ClGCU1eNowby+rBtK+rtf+Q0mqyLfY9H08E6n5F/ uC81bEEJeCFE8YVtisqiNTjkEFRzCdEq38l32yqSAHqW0t3CHH9FufDlYV2rpr04 F6di7cWzuDlfQPf9rhk4OgMCgYAKJKmh4+R56HRScYkr+dvQ8SkosV6diA8tiin5 QE6obyPORSDv0MOgnbadYG5baLk6djFK7C68Ov6+VjZGTYbL3tPWUNcgLk/LiCju 08xaD1uVItr3+qvhIpSxXuFtjeyneRSO1T9421kQa1V4BKdGNgBpjXk3Eo7exZ2J N4Zj4QKBgG9Z9lvTiCoGywx5r5Takf13jae/mw0SPiKseCzecUwiKJ6BWAG40E1u LQHYm385FYN5IsNJG5/2Xovi8Hew3zckVXRLFy0mBiDV+UNb+izQfa8nZSNF0iRd iQ+5aG9z6qE03XJCLN9N3jksbrqjeBamJ+yEUkUUaMkucJH9au6g -----END RSA PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MHcCAQEEID14JJZW9NPBk9OVH1yXv/ryi8+H1aDmB85TyjDqlJAGoAoGCCqGSM49 AwEHoUQDQgAEKJRspdYi9Dlbd+Q6R4zCS9SRVcaHv9kT9cHlnnD2vUw0psQkDH7i 0uoLDuB2+CS+6yPJleXoQ9d3YHGKOeKypQ== -----END EC PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEAzKDabPlum+9MWh7ANXOfYZGgm12z5xj5HVk9Nn7DPRlOomFr n0e9ZJtTZXgYqOnvB1DXl+h662MGbUl6+OffAs2myAyrOKoGfaOXHEjTkBh3WwmC I0kFY+/uJfnCJTQcLokQNaCrjC8rkzf4F6xAuhVuQ4Xp2XXghtnOiYAWPcN2XAvD iwJdAFaEKEDiBg4XGdXqeh/DrZdACCf291LEomyqBEN8lOfWOWSXCAi2QbNy2DOt dj46PNWI9EeKT+H26ahgdD/EWi6bSd8LRzdPzdiXUWH+ihprrlubT1Bs7RrVkIFi ZN/pl7qZFpisU9OZ09UUBUktpp/U1d8I3EC+fwIDAQABAoIBAC+wxXdkYr0A9oCC bjWG7vxkXlQXcJhJn7WRWMzcmlAhF8yMe/KxW5iZAsTBSq4DZ2wDEVwcGJnHiHXs DDb6g2U53Mb+/ODF76FUgSFcb8JDkX2sJ6JloFX8UzqSjQbysCbAVwDIo3KWg8dZ 4f5SbPtxhzNBgJDoAh4roRE2wvg9rSUt8gti1PU4MmzyIJeU2stPNU0Bb4oJRTVy BSXsScOm/D9ZBCxaeZZihTsYAsyb6k1XEgPFjkbziIwMP1fEZOea2EQWCJtHBTx9 7XjUbCn7uaU1NWw12d0Vk91zHDXdJOIbOGVYegyBTHzOLJPVGvewfl23kLCbBS3X yYia5uECgYEA5z8NiiQ+R8YuPBYflvzTQ9iaoVWZGuIxpzTKjUEWXBG03rd/h/mu 4k+1AoWJ7iss7iYE9yNduAdFNm/7KJaNMkoCnFC501UZHxkmeQskDx1g7mpOo3rv rZU13PN4Wx1rH5co7trz1+9+3rgkM3WvrYw8cHAS7bLkhSE6GlmJVIcCgYEA4ohg SUSgelNhGwhu5unlm8ZX75q+BuWYw0BSNPv4GQ3wnStben/1gm4GZ+7qN97EnhV7 c9738GJicMKAA6nqdi845F7RHhVqN7cNv60tSChfu2P+frw/hjyOFB8wKyMHyqKx I7c6Wccmj0Jab8iO4Af7fdWsieWGDNEWYJN4PEkCgYEAyNPFmncnb4X5mU1NWf9w Krfucra4JNTUcnYygsJH/OWTwuhx5VE+RGUcunfm9eShPKHgJhGczrnhrglKglFd hpMn+UFSYOrCynM5Kl42jrng+K1yZh/aD1JKWP1JRTgjVGgesHGO27Wu5RXeuqI2 U+46fxuWFMEMHWJh54hi7/kCgYEAxkPT+exdhBKbx7wuzF1kP11uM2A89u5WMHWI PaVWNB92OyjqbKG3r8s6Qhbh2bpYXX+xx+0bFcIWJFinEA3UDlIwOfgekHTvvQmy t9MK8b+cYfcXk7aQ5pzzQPs2/lovhJO18+t234Kk5feODY38NmnmG/E6jIpdM7SA IFCRiDkCgYB5BAqs4JNyAxHHnZq8zokkVFE91CBZbAJcmpe4NfLz9roMAJ86VBD0 Z2UEtFpUvzLf70BSlhf507C0b9KQnbs5uelDGAovIJ6DXFOyyPpjUOZmDWGXmMz3 35s65gvXl1lsGUIXQXIQv0/YZcvvi79yNKdvjw/gGNiVtJ6hdRPc0Q== -----END RSA PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEAxhsL2jkULsj4vU2XdusCe7fc7RJrHPdpFDMTWDLwE6Gt7XO8 2bkSokiz4h0vBdMcwbi9whPm/cYMKSclHqnIQTT+hy78fHErD58gtfoqURmxvXsL 2zVGBa2/gh7TZg7llbz6wwPzc5b5pRzjfqkZgnRIVXyQQuHHqourMaeyeq1NnKdC 6bHNG8ysfJBFePtG0t0npIaRYQONNxpcSoY6XWzUTCoUTixjPJygDs8fSc0oMiHh TDQYyypW3Q6Gw+f2xFJ0EAMTzDQ5raOH1ymSiw585Jt/ToGumwVZpNnXftgZ/K/w c5WrIAh/KLxu59YMYEFdXOuuFs0rBvizKp0UgQIDAQABAoIBAQChsWOcKuhpQ0ma oSEWQ7zUI/7jVRwuGVYf0YxhebnwHA+s9sFWZ7No17RSwwUlWOloyJPBO6NW0HYO hM/MVkGHz2xMBDK6k1fVOUlmnpg5d6JWCH9l3PaZHfZoiyZ6b4A+FnAKCkiDuN9s P8cDE5wpmSWM+M16eXQRpEwHjFuluiwsyL+uRnO1V8pl7gVDmVNarOt5G4tYBQ2u Fg8dz2sl5aQVAwl+HK6l3OCx+w/mydnT4AkN81ZuhnHswgsvqxNEhTAxcIbvnNtn VluNcQGU+hbdOOqOxYhyqFaz0nAk1XBtknq8Gu4aoWDDoFCd3svbOR43SNFPQofO 3Fj5C80BAoGBAOSM1nctxJf3DZJrzisyYHtBMgyDxkI9yuA66b8331Yxxx64IapA b5TO3O6/P4WD7YnwF8jaHNbKsjzJIpoJWBpqi+UKE84iP/5F9XunakjhJRVBEHdN Ksdi0AkWyUIPn2sZP9DrMJNuxxWFd+nkwzinYgn6DLD2PPuy5i+MWaoxAoGBAN3m JAnpaSMmVAY/o28Y5tjuXT6GInXC8UglhFiKQxx77lR0sc1jWc120fx7mzYzAG6M ky/B81LlhAzLzcFGTEoj2yTdfaKTY8VijPL9bk5lojEvFdE2qIA8l9ba0Jeey3bH b7g94rSvT2ZZkK4yuqTtDrLizmhh7xaGuGILKCtRAoGAdcZNzmR7ZoQdLlL3jzMK nPlfvSs6w2/sV9iEE9HK+TP1lFL2pjFGTry7BRzwsvDlO6vJ1erv6Y/SgZh0iERA bnxxUrn6ssLbj0Cl2+7NynibD3TT82aEoPK+mbBwTeaXFC2SwSoxgggX93Mr9A+6 ujsnPlTorVh23I24KNB+dEECgYB/TFDucr4DETDw6L88s99zIcPSY6cPQcejqQo0 tRTtGVfPkaaS+mUBTyIGI28Wd8nOocyqgCy0KMFJif2+3DJV8h39FyfFBaMeEHxl xefrB7k1WBq/DAk8kAZXlu5FnS6CNMWtv6r4Fv6I6+bpWGbkyK4/B4h8L3q2xJCw hlAEEQKBgEN/mckLcJZjwYKiauLGOTgqFb7jqPDhVRJMf1YnC6ir36Us2GeDl5df GHUY7M7mbCgsEKovnHy5ixRNNDxT+ggWoDDbSJDvy1NEXNbbQTyrO71d5vjkOjtb qi5J9kK8Q58qPx4qrxqwVg2MyuRbf1sJ/mw5zkkn9344tKhU14hI -----END RSA PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEogIBAAKCAQEAuM+Z7R0v7XaJQvM+o0zz0A9dm0gAgGppVGtpCm31raUkRL/g gh30xAIh668ZAoBbUSuRk3zP0aBclAnRHxID24Nd0/6QnTIFhj5LrcgChlSskItv 5vU3fkw+4SPP2O+oGGz2KjT9DpxNlaae+y+H3CdG5ii84A2/HpMYO3Dea6u8nnnx DbZQjNLAgWXbSVDmYXmYhhSXLF+xnfyEJztOgK8xshEwiSbZLS1mI6nnXEY1OULF lOGRLO8ESPS2pxE8xxhNELK5upVJNO9p81YpH3tVs2r//3RfTgUT5Rsa37100EW1 P6nr0oa6Xh2bJVHS5H54EXkpQP9y2Oh8gj2QXQIDAQABAoIBACe7qnJKFiXNmFEm js75GmofA5cA8eqp9h9KQHkXjvxYRuXpAtG2swr5EmXjbVMWWYun/FJjQSLmgUDq o2U0sFOfeKq9TkYdnQZxmj+wgqpyxe8Fq3dSPS4QImyxEFypmdA2jO4iGk3r2NpV ylRisajpYNrW41SgX/io00rkR02Kbw9rq1GVWlyEcRNAa5GoYB6YLfLTddOEySEr JSXD0O29HStRO8s2SEgk4FDNCCQjIhUhfb31iREWhZJ2JZG9kCSFlDcSbc2Zgl+g eUNUl7YH7SIwcEWDQfIC6a/m+canC3BT2gzavaunqgHa29tQrxyOQUy5nfXdV5m5 q9L/8hkCgYEA4+6ArHk8ohh6DYMv2F55lKWgYg3OldTr8iUlXDPP/M+WbMlndUdY OceNmgkB/du0iW3VeRW42lSsWyTDN3LlF+Xs27szfTHH7x+A6L6Cz0i6u7QA9EwN 1vRGNLZKxXJ0Ka294/n52eVqmYJ3wLSLKQ6qZjX0k2I5ByoXzfqhpqsCgYEAz5G6 NVTog0mZPhmL05FXjzxxUCRz7KXJDrB3+0ZvA1G1jOeHeyYnE/9P6xstLqHCNuQb qw7Hfe2rvNreZEeOZ1cEsXVahPSFHN7DoMmYZF2SgQgSBvEAbuQavUPOFitkEqQW eRFGNVkwz4rtAguso0WddOWHzppdFkUDPGFixRcCgYBnR6sGe+j9ihnEBa2oXSa6 NFJ4G8mAGvrOvgYvwUp9Q5LluF0oxyszAzkmku5UGTm1DA+uzij0xWlT41SRy34D Viv9ZNXv5J6zu5Kt46ViR5JVezrzd4LN4+HsAK3gyfvY5uEkbCDKmymyZWvd5fEo qXyM0+X+4oL0vB4NN4QIAQKBgCk5cBoXevZYL689s5+ZRiKUhoy8MKnXY08fjTTC kFnAaKZLdYTn1usJ0f2HsDmKtt/f/f7DOKuyAGHJtlGERKwRhEUaYZf2WFmbhI7y eum0C9zElY/7XXKoqwbb6JpOk9l/7VauL5t401Dk7p1xZCApO1R0IbzOu54oprPf Q5aRAoGAbkw9AbO6ZQuZHpUSRxb3uqnymRIiDW4L/gwFJKklt9K0WdcNHwInhc3k C89wzKIcAWug0+mpXBq/CDO02HzgUUDKRi8ppuHmdw3afmMAmnx8WjB684NIzdla a4EMNAOlT8VdRpwaouDMj+8diFlHzP0v4kJ4QHocl7Sp0lCrUbc= -----END RSA PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MIGjAgEBBC9HZ3eOPSj52xe4prHMweh9M4y1Jt3pNkdnLl7DAocibIiwy9hvrRfw /h6p7RUZ2KAHBgUrgQQAIqFkA2IABH6lYDCvTARku6uJI9Kxck5d+eEaVL4KTKRo mdA3C+1MbfccG4NotZbRljOb35FIUsMTEUca7cffR6vr40tAJfjVcN3ElzFQDm7W 55yGUWy36p6BAh6RHKW5E+pxldbUCA== -----END EC PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEogIBAAKCAQEAwjs3VJNBbzIH4v9X1gb6z43G71KJIpElRLFgho17e7gmGXCU wVe845weiYkya0OFwmVBjcs88m6S7CLHd4DePn3AXbbibPXhJuAJkXi6jgsc8Mfv ScBsGYAcLQHtveJ2I+8dx89xROWYDxLoxfWdtfoAtKKmi74wofcnCXav+Nc2skVz bjJtoR8OW9OhBXO/M9lvS1TKBLIrSyQdRtwZOaf9M4GVmNNXXe+C/0sRKmQP+AV5 ue2Bg7UTHbK0ag8NoZYjRwk5PLGgUMifmg0OPgHgPKgHZMkJgS4b9OlL9FcffcU/ y8T+ddbi4Lg9Yocokl0/Is3WmlC9vbQt4SyrLwIDAQABAoIBAFLdYKW8jVYbSjIW LispnyednRnNZKRSuEuuQTgmdGA8GEUSOuShwfx5Rq320oPgsthUyrrr0ny7oAMO c3sQh8CxdbiFpeRGomArhOmDUFP5ecdgBT650WSvu1WYVQ2F6FE8WsA8SF7UdSM5 NgX+2+IfXt2x5swHwEfZYdYvxLOsnv/sBxvzF8MA5vW0PtesZdC2P/4Z52T6SES3 U+RmrD5Zfe9uSFJqnhMN+n5EuLS2GCej99z3jqTFtQoBoL1RSFMOFp060rYg+Rax d347twCJH+FBRcteQjw0OHhXiRvKTrjownUQJLM5OrBe4j5hVKycBonlby6/QcrP Xs6DYkECgYEA7mH0+IUKUqYgQfy3Tj89E9rmBLy2yTXVm3nR8qX0u28URBLb9XqG Z3bkYURuuwGKbCOkSJC3NYnsrzof1Z8tzVG46d2leR0uDSk9ao23T0BhwLukmjts 37teUJ2og7tNpcUHLAOj1DSEn4yHgmANDRnKSGN49qwuU6chUCHP4s0CgYEA0JXx 7S1UdZrjdYND+1qoFFZsV2ZQT3xxWkhs0rKIboTdvLVM/42u3VGnnGFuxIfKNqNp nrsNnIIhOQqzOHUD6ztekGY6ErzQ26wr7cf3NXdclcbhhYKvUi7KHIfQ639lhkpv vrAnX/ztWNlXA9e9r9Dndm/SVnrIrmi/Koe/XesCgYBwAmMi6xBgqWJ63w4anChM zgxKqYmRndQSy/jUdRo7gAQbwGjOPZYtw3WoJomJIT4zdcPZvPX5GCe4Zi1TKQpS cVXbvaPk9ssOsBQFnzVE7dGAyCqdtdKAhf/ZDVuDGl1vyNaH3eX67fprJZL+tbcs MrQTs3nBHkJeWCeVCW4u+QKBgGfWDV5lz4LQPWV1mDUbt0qQj1SfAWHgcElifpIR AGwMRpo3owIhFSjmCkuGEW9Sre6vQNgdBDSib0mHMxrq3a2Pm47E5SoIxuxkdGXl wwHhzrxdCk29deuykTjMv8tMW00T5zcFWESnk7xETdYC41IP6/oAxrP4Yci5KllQ xIpLAoGAfEIv34wvBboOhgf3p9U+W0uZeb8hsRV/cmZ1tTB50BWmF9+05AsKc0Oz nmROYJefeFCOQEcktdwhRyllMMQsr/YwD0qWOECmZBpFymg7QmqUmShJ9rHQ4YZC dg5tNPkimKgTOxcgQHfUIMTrsJInVsZEOJ9ttJq7jLAGb23OVog= -----END RSA PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MIGkAgEBBDAwB1V8+UvOk/bHZr9uzA+3F8ttOYYN2q688rRnPwXbTjV+mPt9bLpE sbgxK0OnVyugBwYFK4EEACKhZANiAATaczzHiJPE8gqoWMYxz+1tx3X2Y85mu9a4 q+JtTvSTVlWmI4oKO+yzBv804Ez+h5saGpnvC+7FCg1QTwis91P+NUQ0FuMTxxg9 xuvTYaQ0z4exqOwhd2Tnrbm+XllS8cw= -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MIGkAgEBBDAJ9woRPL0qN7kwpAydWb0mHTyHC1yHfsgzGb91VjFfRtRTScIqY8m8 MvDbM3ldoDWgBwYFK4EEACKhZANiAARASnyk+Nd08MHtFd7r4TsiQcuiIw2RWbbS 5rWWulhnx+/rBU0f6TGkuc24fx4oHKmrdzOWKBAeetzZLPBFbqi0phICxagJi5EE 1+Nwir3uIhMBpjYBdvESFFkWula4kzM= -----END EC PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEA1QVZp9l35m9nX9h12ZlDYbO9b6uVpcXDbwG/ce32T3VUofKZ 3ApsKfM/soakbcxIV5Vas+1MAkEzCvW46HUWjF8lUvVZgXRNq4H3faq8qwlTU7yH MVDldtWshF9XVF16NH8WlHuF9mYLZEPJKCkItJYBv1nPYE8Dq74t4p43p70OXYNv Zd5+/GaS5lXfe1CD2kqO7WEJcffFsLOK1vQJHAosbMvaA4LMDeANwxlbbSwBMyJO nSodF6a0JE4HDlPyd0fYWgULZN0e36WHGqZhp1UtmyY8dY1WRJ1iBjro1/FzwImR gqv6RoF3XjWoqKaaVxDWHvqpETBPKBzFnxtIUwIDAQABAoIBAHrG66bXq8iwGwfe DgbN1E1iuGO9pLH4Ky02963ltpqTiKUS2+U8SJ1hKyxteCYkoOmCFtYvhiiihZXi jKHGoqljSXLoIJ+BdibM8OWIW9fEtzdDKTSeaLM2comVHhNtETtiqJQKIesjY5t1 imJQTEkxUG6GiAT9ZaM+KNo90NwnB+sZPCy8GQsGzGFgSDEslX/u2BDPoGvBqE/b CXtH7qQDOr4bh6Je7edJGWnK3alyU6TLxWu77+FjcPY4vy+BhL7baBg4cdkN4ISw Qx3XvP4itV4l8otYH9N6WSutG+VL1QpjFTel12VCgBZsR0PRZ4vVuNHVAbSKkP90 WLyCllECgYEA/8KIEbDdAVePYmZkBaZX8r6AK+LgdJmwAYaiODrOh4W6bvdXWv2Q zog+89CfwOEZ/obhMWlEFwpeNUD6zjnl/hlQ7D3dMujOGo2SsqfeEyXKZknwmjSK hgUj6djo8syOkccdKNF+GzOnuO0btn043jfOuCmoYAylzrI9BcOZc+kCgYEA1TiM BPw6FvroLW2wW5StDJ11d4t2nf+YV2lu7cnLuH9YEHVdd/SEVowpofZLqDi//ZiH jl+34t5a03G3/cb4xB3giYCcwQuTxG1JOCDriwkCZR8aQyOSkPNNjEdGgqToe100 ihKAT30NT2xEQkpiCOMkPPX3aUKzabH8kLqYINsCgYEA/aQMkY7W/pe5aRqmIzw+ iEwIjH1pn/kypbDBfAZF//zNUXMWPPSvAUP5Oo8xf3U99EALYJdGoZr0pteUY6Tj xEWTDVak4fIjRA4W5/q2sEKQITU+2Y81uYergCRPkUrwMP5Imsx3xb5KnYj4LNiu 5yJtbhJSGz8vyHbXMbozmtECgYEAosritOeynlsBK7YkwTdZjFkoF5bGgMlmEc8w 36KDxSCNJzvEmlJ5O+8V1k/K4ew6Qa/UR5KzPibQp8GaXcstoebByZoFlKp3LrDW B2GzFNtTFcvSbFJblAn/Okws/JBV4+J8u7J2froWkH4z+3z5Lpnl0BlnxdkkTF2V XRbqEaMCgYAhRpEVHxu1ebnyyx/GVz/dOmdOqomwBtUobH7d65rrjUq1yFj30AEh UlWU65JGu4mtQQvoJSb3mNnzaJQZWxcfDq1k5pOHmV9ZBGO2vGQ/RxdNBct3fqE9 LD21SlMOMVl9o6KqqfD1ihLxsNhonaIApOKb2fC3Kldj1AF7ctImBQ== -----END RSA PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEogIBAAKCAQEAujZUqL6FgeUifqs16OBWKw4X4ZZA3beC5rUiRQ7feoxiOONp VhHlYMAin4otXXbGNaxb0eqWuSIznnEW2rraRjvbetTLKSIIkD+tQ2BDbgBUjWg3 86oIgODL2qdFPaTjjHCWvrifRrCVmzvZxEcu865Job+0UkhqQyWHC2pGFCANtlHi MaAIPR08piAfZPMRPSX6/Av/WlDbLV1bsa0ksjqj0XwfUmV9wigqTtRnRHGbucSu RN1WPXzxXGfGjhXlWpOWcCjrKHw/Yyk/hjZ5XEVu9QMmz4BB1clt+vgMimzHcc3A jW2tik2CFBorn7dsJU3GYVp+iSl0J/1/V9bbmwIDAQABAoIBAELDQf0yOdnFlmWF 6xEwhZRwPB20alNT/UnMPZo25+cfOAQffN/QEMZsfL1opDUzZYNO5ajQi/OakJlJ AKGxhprR0TIr4x8/RYS6X9udQu/IjIgaip0BJIVYk540hL3CRZdPsqx0sx58J1d9 0OjvgKT7owisG/G4ZujmJpHwK2oBKm9jCvAGB5MrR/2TGWSDRKdaM8UyS5b2V7BP MV/zKDZgana4M928w+M4Svq3H+JtIxHdF2UvQ4UCy4vgPJjQr3URMvbE0/9wzoDk x3zocYqy4zmkThsW1fSJs1ZWbSf0uKeLDl62RRgsnr7W9D2xUWa/7HtwuBtDeNMH XiaeCVECgYEA9PzVkoFZgEa0HjLbpNXpI38GklHK1KpwkVnYu5EAwHIz7V3U2upM t8zLlPt0MTURH5SD0GboqNVS1DkvUaiCHvRY6IGWtxJ3kpCEBupR/uTtzyAcYC/o FR8gCdSz/lWg2TgChY4LSu7vaHNwlAO028cCZda7mQtr+oX1SgHStekCgYEAwpUl QbLbpQGn5O0a+uJmcoCiAYdQRQGtNJtHggi4av0BEiG8yhQAkZNN+1ixA04cMIuI sdOOBFXNkMfhEAe9rJpHRhH12gv23F81r011x7tmEmtpBH3rKVT931mNHK55L+5A Q/0OhHxMUgEWKPxAG9s8Hx+3eDmvAW8KlN0UXuMCgYBrMgYxaK/E1SsS26YH5iFx Cq/RbkCV9U30C6At0jDGBDJ8dkYg08xl0BJ0SeJ5dYLckptqoNzEozLu8WanEFh/ OuN8ONe9mzL+yoU6kWT3Zyw3KRHBdLTUKR5Xrt5jNwx+f2d7EMAYNZxD0986pLSK RfXioabMPJcus1a03z9XoQKBgHhhTyBbJ/nokVdWvSdTo6/ZFuE9NpLKm759BntT K8y848m055hZUZS+fjMuxqxVyaja2mGxkR3re3bDweBp+ZVsCQY3nFMercXefVcL 4/8CV/6zRtBJmpACjeF9BIknA8B8dHPbffzG7WyaUXxfusXBF2vl8lrFzRhk+zXn pG+jAoGAN0djeQCebp99zp1HhvqH8rFf1lfhHcV/pnlzo4cLMkA02fCn/ZqGgaYn ZJ56RUuU+1tYG/7P4InqY4tGS33j6fNUt6+s0mSqI/36GSYuptiRxDPiYKuGxlN+ e0RBBWd4TCF/J1pD9tmPSog42sIKZhqwHK1yHvFTDObJ/fh3kgU= -----END RSA PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEpQIBAAKCAQEA7DzmTRboW8tE56yCN85maN2I78qWi0gmSUEE8UY100EI+yHv 4Yg1niO/djWRYUzkl1VZnWq7QNPLoHrYtLuxugqseDMpDgW5e/y5fn475L6+0/aa YnnZHitFQ5kRaoAXlbuQReaaXs0fhjz+g62f1B9AMYSskB1/abPjWeb4Z5o5u+rO 9njrDddqNwybEXy/ojNv1zJkQ+qFE1IMdj4w3DshzmrWk0F+za486d6juIMa+wTd pU5JGnUN97/tcDZBfvrEcL1i30kWf/W7yjAH+t6+KiEkH1EAbnr99l/FwiYwXOXC j/Y1gd5MJC2cfKv4S5SQKu7phlM/k7hSzQTWkwIDAQABAoIBAQCUMb/nLC+nJeSb 0MP/biMgNZjplBTMWv5phbgsAvdRBsMzhx6MRH4eLh61cPU6LJpZtNj6vzGogTSD /4xiFDxxkLCQ1scyXLT26psSlu3LmTzsiw5eKEHjgxF4TlV2kdQ5wefHcdn1Dohw FWM0B37z+oayiaAW5+o9zPMaOqIpmolsBLO4R/QkLy2GJqVb4uDGTD9CSkxwNQFw +vdhpPIZbbJlDskRXo1O/OF52YaIIIj4Dvo+KtiksUGOmRegCBal+Tx6LUCaWyAj ZiZ99fJ/gxI7CkKvoTGXBmYhASbS02cnN/nDzxRW2bLvB+oWRsIJ59sTucVmrwrQ dbl4uyGBAoGBAPvfAbgEwZduYQZK6bbrLYX58qZiHd4ntUApWiUu+Kr4NgajObBm 7mziFu8UxbcFsvquREUw0tbmGzXMPImd/DAd2kvs3HrXOTFv/9+bm9X+TZWypSXP HRBhT1HOb8WTUJ5nNL/Y4obWklPSgiAMG1EH9sjh+onFgAAqlp0l7KvbAoGBAPAc SXvJ8NXp3Zi+OweaLZIr4hqEA9f9nNMZUKv4POG1yvKzoNio6h4j6xcX7jsMIylD SawmVyNmWoC+zNQY91Ll/ApnBlmcyXDNkUWD7zRkvuClIwmozMNQ61Q8an9JUnHD SLELaJ2+r+NXoURb77Ld7owuknrzD51D91rMrRmpAoGBALHc4ZHZifwt7kZLUI/j s9oQj9H/J6hh0hTlHstzSBc0ALLfQTXY+jXZ0ugyewyr8aAkwAE8YSdwh3aOK5Hj BtvTuPw0392/bpwCw2ZctMeBNbio1wbEI3oVvbW/Wh7j0OKLbyyrNAyUKfEXjtyi sAeg4B0rt4ji92kmqgV/aopRAoGASfW8oNfMSmf2LSVzk1znap3/0IEXmgFxvAiR M9eMEU5pDCdOhU5KhywzLvLdG+0aK4yhddh9gNb3S6758t8Z17wlzaJ8bz//QLLh a5M/LFlX/mR/jWskX4leY50UhM62CXrIulg0SlrBXPrSHvdety7rWtzBnAOgrKWR 3LMtIrkCgYEAnoqQoOGysy0pod0JzcFkcFUOUhjMJwUDcnKCblfxZX78tyMgbJ1l jdx+hLBMcH/alt6EAnTggA9bTeEr27y5FoKLroubCa58iP8F4HHRlS+FJ3Nbv2Ey 1pA0Z3qMXq9TZXw6xNrKKkp8MCI7xrh+zeBs1OZE8seS+otnaJrtyno= -----END RSA PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MHcCAQEEIPWY2sGOz6xes6URwIH3HcqxAwfPbTNZZU5vPfT+UzI7oAoGCCqGSM49 AwEHoUQDQgAEC1re97Ejq7AJFFc7LMkKZ/QF5Hvug0xcadjf4zRiahkwRBeB9hWR U9BknSwTuAwIlMHJzIXBUkLTq15x4ySkQw== -----END EC PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEpgIBAAKCAQEA9SJrL3fZsfY6OYsKrSD8iXYL1j69WvGzl1ukE7Lg4Dbsbwpx DKFwdsTD3w6ILhIdtVOOmBt2WmRd+jcBraMrO5/YewcyBudPzmoAM8KX7ZF0vjuK bTpWo0bchylEWBFqY/I7YR3xSJzFLNalOcZ/KT9lcGwJwA0Lf1o5Goq/ONQbf4Dc xnrBfY9hxrfowNCKIGdpvsXAAVRwOqai029Gecdqc6mXdoE/AEDocyROw0ssXtQX ZEhtznKVngUzPWtYoIjZSXf7PgREmj4zdqNfT5K06zpAziROc7CbY347/qf5xAYY s4iHFrQP77oKF23ZA/7uaT9c0AhYNviyTvEmCwIDAQABAoIBAQCbVrZJnE9NoNUA xgV79J1TloSlvZhM20GNNrtg6EfsjaGCNEGzWVJlUQc2gIT3fO9qioqgBTcYzOVo vBbKK84nuIF8ZPDkwwwlp7J9GmEgYL50FlMAKKniSfNRi2sNy+t5bnUGc+0EsKOa aGLHm+vU/aGQfkYnd5zDlS7+jNHkdfeAtfgvgc+w01Hor8dUmPuz5nURQ/vgRFxY IMCw0aLhXclewkH6q65+z1YTL9teMpm4dikbWzHUEbyp0yDT8Jiy+tpYEvu2Rdue /Svv9Dk/8kT4fqP7pfc+BGT4cWnutuumOTz6ZjM61/vIxKxVPdnmqiIn4VJnElkN qSOwRjwRAoGBAPq53ZlcjV6bsOE00/+QQW9Zu4Qou6Q/N+hWEc2HTuiEbtTjnAN+ BZ5mHRA3u6geCcsBNudk05D6I0AubsZgqneeQjnzAsujfoA+Y2gRZVljGVmbCyjU 0nbWtUq2Ile/4GJuqnMXy2Azx/I0eaOiypTQa3ACk7p1JlRds6vIjwgdAoGBAPpK cWOn5wFMfde+hWnPWOtUrod1znTXjJSJ8sItuPU8BVaMd773bL1fp6rMbboTJroM xvV6Trk0ZoG1wyk/ICYvtXvgG+FMRs5tCR57cd5/D+fqEeWfbvG2bgmZPJANtQwD 2WbiLSIlVyj7kPKLTwG/fcpn4cEZhnNyF3z+FJ5HAoGBALK18q7Smm15+dy8I/PA ZfOxeQgdZIoRCY+QccYWkPcJFlqmFdkjZWvfCw45O4f8SSyqo/DRHD/1G1UvA4Rg +ICkjD3z6eUulwdf8MkHxT6udS46ZfznnVBZgAVNxzLWsGBY0yOQLUVYA0evgZhS e6UQ3dOL8rJvuC9gTqW+Ib09AoGBAOWHwWaXwsQxJrLkeKrpSO0/knKNedEzHyvV OjgTACx9Z5PQa7xIYYNlpnh+0x2ylHBIaWkTSgCUanEHhDteNZhvZip9AnRhpAmI erVmla1qruaKhPEkffTSzSSmT6D3wRGMsiGkx6kpvz3JPkr/sGu09aHaFHEmfGOA vMOWqsffAoGBAOlZiHg4uAzTRGeRAGNpdIeLv7ye8y/pUQVImy5V5oiX89agWRKN kcQKHYnV/RB2BwUQgXUQ0VWuPGLzOpSPqAS9B4UQlLEn/kI7OsF/LAK0jYtvq7jH Fl+AVSGQ7TIphWemcRGHcYal4rgo96xY5sn8O9MURVLgwpD1nNhfN+FU -----END RSA PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEpgIBAAKCAQEA4dJq59Yd6ypzcAHBxpM97ZQembJ9G1LAjw4smKePcJi1CeoS YGGN+sLsz8vbvdSxmevpRK0IdAvsWq+IODzTgyFmG3p29XpMNKQ4rThfBSJbMbvF jKLFN5JSvHUdxcedpIIaQnqBSbRRxxBXhWOST8HyX3bJpMeT83sgqXlPsT2Ks2b4 cZcHGe0d98aHMgqElsgUX69yPslXjEta2l5zUaRRuCBb1btaerif3CCipbXbJdod /lriNJHTdNkth2AaXaZnGGd+3TCBglcaDjZp2JmckEWIDvMHY1W/Ze4/vsnnXEGv zM72oekxPiP1czp+R7VTLYPzvcjyFu+gdPBI/wIDAQABAoIBAQC5+cXLWr5XDyX0 x62jcV3eDE9LOwDngLZO2liF+/EYxNrL6Hbr40u/icrnszcsVj9RyUTaJzq//5XO daNU1VtIMjhaRvgzYF3kOJ7ooXU30DyUb9TY5rBO/PWgeT9kw+mjMvaXazaQ0a1L qLy7gO5dOxf14OleCHNjYTLb/6lPCBjle151xc2AtCekHsMPR/pIveSY2IrgSxQ9 oOedMAxA62nsJgsNu9p421FmAB6LJa6lbHeGREPxxIgmkGuFQQxNaaFDd8naJixm xE7ekThpxBRJjkpRPaBe8eM6BOyPaz1JGWedptDAu3cdOoMHJQ5r6W3Rozq9BzGe 5GxZd9C5AoGBAPMN9d+IjW07dvFEICjNkrQ0AnmCkUpBXQCcdrsFzPZG5mpU4Xm1 PMrr8elzqCyhUWMmnj7X0y1ehBeaew/6By34fgJPnSxUNQT37CtpeGC6sPtSvbSf goM+j/8GFFwquN16D8bApu7N/MrWijtM0v9kGK6TPgW7+e7R7JeQXdBrAoGBAO3Z fc8ioItno4gHcczJxqa+HSlDQCWMSmtIDAl2uQK9r9FL3LzlAbdh3CU78JPm+X+R BvGLqeremTXMRyOvwE5wFhPLlDr9lkBq00ECHWQn/Ej5Bx4PmIChiyZFaYzkQmHy hHmcz0ycHqPJaPUObW02MK+v3ROiCToGDmrEer69AoGBAIkw2BfUe/+sEPcd/QkL AEO3F65+hIPlYRl3N41ZONfKLUTXpG2OX0Iq6+FZ5xNJ+yZ8JdZS/GAfeW/ZQp1C A8tu97FWPuFGpqanSic24Tu4JS23Bl1tq71pEt5gEB31/2MEAuOs2ozwuD/F2UCf nHmLhmMDuX6DHBAxbdofItUBAoGBAKbJ/iwzpws62PU56zZlRFWHOaHG1APAlisW 8cHtLB3c8J6/KQKZQJPdHuhJWRIORWWMSKc3ficCg8OzBSvkQeF/PiwRdVfMngF8 J7oNhpjGZWayoqgU3adOIOrsf/DZ3CcdToKNUNzzGZVXVq+Jt3h/KLL6ivgKh5fV yWRbdYutAoGBAOr08IrcMT0n4M3gr4e+9gyVePbFrFfS7QqZ6pPlXXdFzanPQ/l5 S26FWyRIW7NszGFuvvtm8y6RPlgr5v3fR8dqZqMHPZhjFh9mgVXDJa57+yOKKFu9 zxGt/k+UQbqo3wKe8dz3vvhtBCPTc+cvxc7xlbQzlnYQOAuJnTlwMKGe -----END RSA PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MIGkAgEBBDAM3ncYVNU1BsxnOT8ClcsqJK9kuP3NT1OdPAkVPUvhqpVIOciMCkWJ S29u80WtwmmgBwYFK4EEACKhZANiAARUmMfXdYv2JTll/YanSklGQRikHWNLEsmN 0XX33z9Ywz5ATK6+zF7kvEMBev2Hnxfs9cFQDBSIKivw4gpOKtJrOIEiX375bX37 0Yk13vJuUUuMeYPfIhbhXN2FKsE5DC8= -----END EC PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEogIBAAKCAQEAo58cQtr9rPbARp4J1YNWCmPoBAUcOJxmNQNO+9TwFPggDQQH C+RYz0PjJf1sC36O3ExI0OSP7M7kLS1MKMISzPVzI3dD2D+x5g5RIupw5xqPydPe wam0sRt0+yPnPV47TJcW/2UcI55gdrDxSzkkLeXN6VdPG3ToGo0ar28R1buzXlHf Jbv8CZYvlHqdRsfcZ028JNg0Phtkd0e8NbMjOE1+NmoSVGuHXQomyol6t6GUTBwF 3hv7YwZJSd4PWYr5nnDmp0Aab91jn/CjSR8DVlgXYrOJUiwqnR5SwcoFtdz5PnCu 3XrxSJIEd3NTzE574IBaHdAkEYzuoqUUsZARcQIDAQABAoIBABlJ0SNgF07xQBxp 9pkiWFz4vfZJF+iD+6P74+w2J/kFtGZulew3maZHFsdbWKSaJdhUjfiDKt9txoRY +OlfvWoiEW6M01aL2aH12oJr+5EsYMbP0SDbasrotHbQQMASXVXkEDDe3q9+nega RuDabwYM+3sx/E8BDZJ09ofgwb/nqHUPHG/6gXE5J16JM6P9vcdlEVG+YLOJtrbO CwqO0fsvZXB1BKWjvy2DkrkD0JxqwPs2N3ZyTS2y/BywxLjy9z+B451igWx7ZQ5h Wae9r/OpxLi54ZDGHuAVJl2PX3/AN2DYIm/NCn1LMiuV5+lFQyneEHHOVpBrNSPJ mHvg77UCgYEA0Q8KTThLYxfdkmOu0Rlg/ukumlZm6Bu3ahq8j0WI1BZZNhUFT1o7 AHe0/p7FJjRBJ//mSxYoRLwUSYR6go7uyui40mjAKUOgxzGuAIATU4pbhMTUm095 hRir0Suv51kKAbf3VnCY/WCXCEMRMFT43qwhYZ+MAXwAZmncTvWFNKsCgYEAyFxI Ay2JOpp12brHCqZT/coS4aP9bie89hO8SWged58TerUVRbpp09+tdUrQpeO2N9Ru eldJYF3mQGEnxD/qGNx16KO+hndn97Nf04/RFYp7ysnIIA/MNRf4hdB90qn3qVN7 w71+l+z+G3/S/+A+BcJ7EUPWlp+DPhFwe8vT+lMCgYBnbI9mIGF7RoVBNLt5ipqn wWhixjfmwD9+6Hc8UeQdOGkuDjwwQ61Iz+/kv1s9SUCqrziZEP8e8gT/UeDh0iBk lblJrrTSNTjHEtbIPJRTEfGwv0eHBkxSAiCOPJSrWStQKljclJu7Thup5LQOOxtb 3cAt8aZr3ZK9F8X78g7SPQKBgC6jRGPw+ot4nswSrPgupUhi/CgnuvskJtkE2QQh R05C6g7bDduQO8gEveSaiJzEt4qhWSIDJWJYGRuNQettkTk+P/fp/ZRhQQMobrrZ NCsWdCBM/ddwtfD55nCHinI5/BsfAqUae9gzYybVhzDmaql+jpUDPHUNJkiRWKSI WoxfAoGAQcfA+h+rOF4CGH4rwB+TE9S7gS+yjj/XGwnUt36LHtCmO5ahwXzXUs0f F4q8aTsWYn5jzWPKfZr+QNqwqFQWkHF/Hrg4xOaCk1QoWau/L2Ho6d1Wh+1pTJVv GJ7qpLnnBnBqmAbH/7AuETBE0EWBImn51Iexh1NlohIB6eWm9rc= -----END RSA PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MIGkAgEBBDDGnG95jffKXgbdPsOQjqVy0UCePHJuD91I1lhi1PS1iYk9a+bkUlKi HsGdp2AaYwygBwYFK4EEACKhZANiAASdPf0ihIUSGUWhY1wHiZDYdaEHw1RcQqVj rcvR2l89wEKBBhtqIsbs/u9WlQHBAGnC1nfUm15SwWIGx+WzH9dRE1Ti95lW/dUs emt92piIx2y7GXEmb99ioh3U3lJchd8= -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MIGkAgEBBDDYeN/Us41dNfqSnHsX4D6AAJ6qyqqCVAj4BSVDuwhYlc0d9OJVULFm 9q4SpMpMzRSgBwYFK4EEACKhZANiAATwmV4hhiPM23VcuCr2c5KExZlcQlRw65du uBpbXEvcNdv/jCvxLIXpxsHPfL+CeFVzRwn2BRf3pLhESgceEnusKoDATYDi+HOG C3u8iV8CmIdToexE4wg1jxJ//qimg9c= -----END EC PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEApmd/hv7Mk7WVQzLHg9dfVI6WmtKW89LC/aCsld7nRFuuIHZZ cJOEvU9YRvWFmylX8I21w11PlpHVCKrGpO+gamfhHiEHOPQyZhjI8DQ15WRJK/1P zI6/sBUgWESWKos7UdMM8TC9EQ4FrOUx2SsmwaiqYba6icD5q0DsODaGQPGn/3gr NQmhePLtFJAKDPuyuiFDH6F2qGrTy//kpa4Fgoj3AdinHc+KpNC/7zYbZjZuwnCa oQQu3Sjxjb5Oo9JF8pK35OX1ldHx+/TkcQTJwrX7Ygeg4/nBTQ26NzvFDZJyy/At OD8TGIwxqMkkQp+CLiENWtiJ1hA4a8nyVLqpnwIDAQABAoIBAQCd1mAFWRwNI1ig M8NBUAFRgCpkUknynkBsOIJbaeHtWhTRH9D4UkS/GErAi9Qd99o9Bv2YgKKkTFFI dkwTWGPNahkC7gsev6oqY2n9RVi17Cjnu898VQ6HY5KZhvz0/7nVhB2rjTJYwfcq Jv/gYOjTGjv6kUtgrJVlFiC5tSYk5EuDLe2E1apJp0Q2kkc6l0OjmjNhUPgg+jTq ic5tghqyFE1NhIlDz9soM2wrSa47iHUVqjl9lMKDBOwRO9/o8JPC4BLPcnxuUkar NbOLrM5BV6OEVkvqQVhKPfGLropOKYFI+gZVr2K6zSOmPmjBhDPOb/JXxoK9k7gC C/3GYppxAoGBANE9C51CgoNUFhMaIdZt1fr6iVrWPQW0hW2d1/DtlzqPG2bCyf4s JIjn8K31ef87DfcAQBSy3IDm6weKlTkyhRsoNin0kYPB91hlk3w+fWP5y5WNBWO2 Jv3qRr4nxpPWWb08GONFNQ7MDl8XeYDUMoAIKdjfnrAdDHxsAVR4mJIXAoGBAMuX 0tGp/B+qmm8BIPcs2T/+5A+xERUx+PgjhzKxgpPl4Qx5BH40L0vIa5sYs0D1smJL QSbe3PIyhKssCK5eaMKmzCJn+6xQqmJQox0uxpiKhWhZL/ujvSHVn/UOjjf4hcq9 ZTFU+a6qAABSy+awsBrgIEKjAzdbpQ3ui3uMsQG5AoGAYKyb2SUJuDP5nwnL6I8G 9tca72Vc/G3T2Dm9tAuSe/Py7R/CxDURDFBd24I3w709TopHEUkyqDwJC4r0N2Eo Lsv9epUNRpsv9R+5bQZSWQbpEUf+3XsjuN2tod4u2c+H1u8VcKxhP1z4pubptKRW UOF0tEddwnEpe7NLSgQOOjECgYB9/RotPTAUuJKRFvW7gDmA7M9dFoonv6D+jZ3g tRDFTYCTI2CwaMLL9t8AP6zOCj21rjRHRasdBj4rXziQD0RtEKNKt2Z7IAAQjy4h pQyo4S/lfyu+YXltMrGmCLfh0x2YdNPmT1ujxvfxO0uLGtQgDYppMk+PNltR38jZ UBtJoQKBgGbZIWLrsGr94jdYLybTJd1L4gcR+I1MY/jAmfF3rKSZAmpTwb59T+Fe 4xa4F3cpPzt7linDB0lfED1FF0zB4f3W3BKJrJ1hMzu09HaLZRRjhw8U5MCCaO19 aSY40dXXucA/Opyq30AI0abXxDoUlfmgBr0mT5bMNSHNcsGudUyB -----END RSA PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEpQIBAAKCAQEA3jCg7VsrB0rkHEt60W6fRXM77ZlWgx3O4Qyu67vSOB/UmsUU iPovywWR2nqaIWhdSH0uLmQ7iY/GJvTyt6jPDfjGv4QrYgVDRhIXNkaviRKDyMsg kzah+Qg9B/eUYAyRyZRljnuZi02MhXGGO83pHO/z3qoilDm7rn7MC4TwHI4GkaqW 035ncnyB+oWEy+9rXN8Nl8QhG9inNYItGWxEYLWIrw4aTd9nyS9SGq8im/DiG0Bg f6WS62kbbORHt+odSdbrde8c4fAS5eZ+EKoLUT2ECLf6SX7UUpjaVoSul2KMId69 lfQCrNZuoU5qMiri0smprR7MbazgYya3+cbZPwIDAQABAoIBAQCjTA4aJBT9qRb5 jKfZYHoCKuzydO3WM4QmdpHggwu/X/V7QjkTavzRM2i8r7qzruZQLmBQjC4NrfMu EnyIarKyTBKWEudnhQKqbwVMSKseDNN6MX/hchec1Wc1gco0xUgoZL4297QjY31R XdwP/AfF0rzi+xuq4LuFRX9lP/DQqlqase44rdB4Bqeey8x9dhfVgn+FAUloKWXP 1YLtYsU1iYIor1BHqh3vz2d7b15SnPcVz5TmmRmBIkFkwti5+Lfl2iIv2hLYHZoc DgkuNIcEjHDm7O/JHPyg7zjpTANnrxcPjmiMkBnbLgTkv04s5dfIw2ruN6FBgTEr PgsAN/2hAoGBAPM8ZcWRhkwi5AXfnZm7TN2Q6I6LZCtVlfGyRRjnRDadbeWP9scM PYu0xfgQnZIVAZ5WBbqHeMRMuMCbTcVrnIb6e4Prielkx1XzAnMKUhcuoyoiY79v Rr3cNeXIvqCK2vu/4oMRsKfoy7fgdnI6W8pNFzrtDnlEx3yMi5yEPWcpAoGBAOnZ gIKVIHDqFa+JFoYFYqwCT9MUk6wfbjpeiYD8/L6OyRm1KAJQqSzYnHbMpP3zkL7G iy076KXKBz2lFEjkaMouTvpW9LDFnu5ItIrGEOsKdx2vRxD4Z2cfYa42hLr6VBnF Vc5lDN0KAjA03jQW9FmYZjUK3QnRaNiwxzsPeVInAoGAZ1saw8D6mA+bZQOILHLy TpPsveVtQxyzAmkGA3cB/VMYB5wM+Leyz1KZbLdivVg/v9A9zu0R3Bfdybo0adc4 RALbyUqk54/zRApm2Atipocivhyu1gGqxbJ1FJcgqYdXVfJLhfZWYoMBTbkLm65A os3vORLSO6WGPt5Z1MA8d0ECgYEA5vAeIldFV11FFzop3SbaYAZUcJ8kitnrUIdm AdVVgJaf8Nxfa5He0GQGeKf21LhBnLWUYpKEWZ3fcrhhBO9UsT30TvOq6BvxrV5t tZKOyJ9oLQ+Y/iBidYufOp2qjMCEZ4LjD1Xp0yx8JsE/I2/71bNUVFOrIHQGt+A0 kJXieQcCgYEAjRH3K/cG51/ONPyuf3DOF6KShECOSAnhAaRIU6ty4q97vvmOwtX1 cwKCAm2oyqvysF7I6H3PIr2W+fe/QuRsbG7djvrSkEFUkaRf4AIgccg5x3x6Z9NS H27XpqnwIq3wcVwD8jVQ9AjaNCmq1D9z72RRpcse4MXeWbEH40UGgxc= -----END RSA PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEAxFZon6QFWBQTfaHa85Vuwbt0XyLFnSGYb95o0xrW0bpJuIe9 ojFyB3jctoiAcsAXFKAdiPd+gD2mamoxakZp1kaaOGyMDsDomdE2R0BXSxeva1DF hgpz6O2ESnpbwQDlQlRsm9uXCtl14T95msBEYrGqPCbBjLFC+RSjU0/392gS/7aV FI0nzWQFfHkS6ZiaOGFEM2i/MeackhQZiBrwO5E8lIO5awj13eOfON8qsvM9hphG fAz/Wq2dbzanglL29wsnRANpuFNvdobaLhE5w3Q6dq/DzU4nk/M9YmYcFAXAlWPe RTSe0vPz6tsrpuhs4YQ4ItSvdAcnqjunWT+6gwIDAQABAoIBAGJZmo0lf5vQarcL Jf/Qwit/uFqTs4PzuUWIlt/w2N00QQuTy5V8yU8e5wj0tctFmAo37rOWrqKUv1Ed IuXGoeu5cDWFgl89mQa8O0FT5KZ0FeZfDqMHh2qN2C/qvR2gUjd4zPMB+9ZuelM8 FbFEUL1TnCAHlfrhLNhS00G/lEo00kKxtD3yQ/Wt5w5WT9YRKQW5MEnYiGnlKURp C+gvmjN/Yx2d5U77KG9XqJuctF8Ura9LRLQsOv6uq7quEez4kISdLGcWs1f3NSBu x6YFkbb6oy67rmMsqOp1dRmYA2hRM9JitWcMfro6by+ZW9LPmJ88s+8Oc6+TGUHP TcgZHhECgYEA6l6v7d5MwrNbUY5Andb07Fbw1J3z/hgI2ac+OPAeSxbfF1AbNmsi ptzSJhVR9jQTX35F5MSyT6Ugihxvx8iau/8dYq0250Wwr9oZUQCO6pn/IASDLCb8 NUYAuKKB2DVVjoUQItkWF0nSJpELKXnJlMSqe03yhDBL3CYFAiyYnCsCgYEA1nUn oZ+dKxPL82l8+hJ/wNKlEHq1245nEyd0XG6BZRsDlTsK87xriK6UmL/yDHhg3Qbb LIfReMPo5r1Sf/lE9uwAEdV2cJnO+lknyEHYLsPM2E7zpouCoOx+Nw7QbVJF5HIk DpD7KtXc6Vpmo4vg2MrcKVWoB3y6kDOp6Q9/NwkCgYEA1wFKb/NRhAQ6MBVKHgLG 6dHQWZ0V6vJtnA6bPGy7vbMbsi1g6YlbXqyRdTJ14GFhrGcRA4+W7Q3VTh5MRYE4 wmKFuLKi/YOnVYvFUdQrR/lCXUMGewjAsranjro2V/yFoptbdDym0XJ9gbfp/4Ck dv/8TeXyJ2aPEUUnrxjuX8UCgYAB67y2IuLafuvluz0mVEIWrQxTcHXuiID91+2f 4lGAYVSP4p5/fmGMMNwd3iJB4FYlxKjz5ieHKGIOpwV1JftrJsP9ZOcRrR8AeQn1 LjnMeW59RX/DLx61aEjdH2HYiNMdb7RI+R12zcGTyX5/2oHiDzcXm6/MmV5makAM WVovWQKBgBrsEkrHsYzAQDA5S3GySACu3VJvjY9bPKEOFO9pgv+PnONSHnu4uIQU X+Dy3db9bwX0ZKDEyh7JctdCsBhMJQBN7Y/H5FeQf8+6q+jfsVJVCZa0VRvMTFue /Xy1+j4aiPT8Rsd9dwvIFN/oG1DZ1cc6PpEBUJBkPPjGP0V3kRXm -----END RSA PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MIGkAgEBBDD75aM4V6RqPmHWZECUBL3IWiM9Gm5rFI9i0mFxvFKx/aN/hfYmylsX nU3Wmfx2iP+gBwYFK4EEACKhZANiAAQ8raOphZgVDlL+081CGLnqYOxTOSudkWMW t03zFWDADN20iv1V7vdQF18uy+1WYzOup/axuvufEt8LDsmGQkDJ5tCG088Whr5O ITxhy5tJITioHMgaO+8HnOdcPwWIW/Y= -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MHcCAQEEIETnuOuUJp5VD9n0cdcwp3osy0NpcxwXDxSmZaAE5NJZoAoGCCqGSM49 AwEHoUQDQgAExf4HFJ4AHAFCKlgX8ApMZ/COmwsZzQPktEjra13vqKE9Yp4qlRl2 s2l0g0YnYh/TW/IhADXSdATu7c26w9Jyfg== -----END EC PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEAzU9kUQx1ybNW2uc77Rc0XrU5MuB5mlg04fLDHJMpQG4ITMdW 9MN9isgGEIxddCf/bnrPu8gYAuG9pk3CGCIzSPRI5LfK6vrz3O/pa3ZSEJyeO8HN 1tadOlzIrrrMzbrgnDnBRnSw0iOZhhpdtHiWKbfMD5pI0zVJd4GerLTu/R5sCZco 62JOrITcEPfptsvMZ8UaTBlVsqx9Eh7VzFoqbVkT3ohdEhx3CjfxfwfLMlKbFHKR nj96FS7v1x4/Wq825aJVY9/p53tjfGOiQcWG1h+RJNZm0xFpmhZ01vQkk8F8/ioP U3us7VnXcifCw55cCBiDYEcEeKKN6gsUffJNFQIDAQABAoIBABovwSTRSQjD9hUP n0YbSpO126jQltIH5B7Znuc7IezU2/wnBMFNWerknlln/dd97oeB5JMX73AWqODY VCRN4GqytcVuZ9RW09nfQ89wFQGHaGtIyd9YGk/CW9plew/WgSWL/EnnQlJbNg6z uDX3l3eUuNNYo2dFCazTfJCct0rTZtvq9U1uwcYIjNBy9jH99qim6xBjPdszNnPe KU6bBHoHDS0sbfS2qWWTmI2QKvmq02tvJq2/jnymTFBcgg7lo6zo/VlARL0W71Cp OSW9B76MF5AzCgFELcXjlx8Movw2TWSrYfz0JMioovzqB9D0q9xxtNZMABVzsEmP 8x6iW5UCgYEA+BkHAednVrLKF4ZCh4S0rE0gopJqxHM8qKGAZvSHisf1bbCIbV4m L2C5vRkODilgRBgKu18TrG0HkBAoq052KAaTGUrajGGGqohWdOSJqxZRZfdkYWwM W5bjYor2qEiODEdT0krXC0wgjzx+2SFs1XVXVZPZyp+BBDoWUo6awVcCgYEA09l6 GF1QSRQmTJTCt3V+GYAt9HwlQ9fb05xNi5O7YE+PWIGPA/kI3cgmRj+MgsJkJGJm +dY9h0XSRDl5YNwehMtBROkaf1Ky1ZHw4ov+aJQ64uwxu0dojmyCk02e6ZIfBmnR 9hgqkMLWfpV8qrK/PHx47KCDsYzRnOHG3AKXRXMCgYBJs72mLiU/1zs8A9GNyrmV mhAA27hGBenWOqwXabs+Wiqp3FCbFOYJGxXyfBf10wrbD71YbmU8yuL9RB+gzF1D hLh8QgVswKgtzvTIIwBWx/mEbhru6hc9ujRwmNGvqmYwdZwME9mQbJwbkSApxsk7 HHHGZXbEv9+m7s6k1eJZXwKBgQCtgI2YasQYNeJwEd2vNxDBfdMlSo+SkrU9B+QS jjmF1WMHD4S7sjfqu8NtARro9J/jlJvVvfrCURK2QYQBKgXsqDKaZ3cGFArXEyF/ yTvhFpVryBmq0f71tjTywz2E+eFi9UO6E2y5Bnl5TqC9hItO1HqNAaEZxsTdgaPG CHEvtQKBgQC1uSXUFhXK5lVShqISvPj8KwVKw7G8sG8hSvzlId14Q/dKfgZm9Pn6 njnlkBXKM7caS4j3pirAKN7U4Iz+UwP9Dj8ymoXTLqltP6cdEgTKhrRIpcimBQ3L 5oQAapRli5qjbFo+L0XGSAhMCosgt2kt+iPqBZyNWCKtrMK2g32UqQ== -----END RSA PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MHcCAQEEINKczzMfIwgoCEbFBpEyA92CUqXJY0BmfrBxTjVp8FTzoAoGCCqGSM49 AwEHoUQDQgAEpDhh4BRnRzzdh0qwgmR28Ajj5k0ctDtlTIXx71ZPJd3aqUWPOzyz 7aPERbPI/m1dTMt56+xE5Luab8JTDbc4zA== -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MHcCAQEEIG9GBcMIcWOeUOYRXXmEfmHzgm679yXT6rgAviszWmJjoAoGCCqGSM49 AwEHoUQDQgAEa1ZXUkzXpBAgQGfjMpYX+7IJ0uwvRALdnh2S41AeKATgjTqKuqIP nBAeZtxto9PtzwJAkReN4V95Gjd0/t0u0A== -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MHcCAQEEINVFycQPU7JsOCkTBJVc1P9vmljWy/lmTmDNXG0q4aPRoAoGCCqGSM49 AwEHoUQDQgAELMAaRVIK2hyzZUJy/Rhosn6lVNMrHxpnCaWep+sJrFIQOJEjSmOA bzT7TCWT8HqsSKEUetMceObClDUoSmevMQ== -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MIGkAgEBBDCPtVIc9RJHLX377mizRDfdHaWzt8pruFA5TYEgzweioxRsRJN4Pa5r n8wBgZ5GdR+gBwYFK4EEACKhZANiAATZSR7RyKq0FOWl4AHkg2Iu10vYyk/Zw3MP cfU/rGfBiXwOsDUhaSncmGcHX2HUho0zFCe4MKUBHyYPE6vyOeSqR/9Jks+DXET0 9T12G2hra2W0bBR2Kgvw/xmTSyq3fQ0= -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MIGkAgEBBDC8qGw5OY0tzolls5iO52pAwvIgRbRH5SmWgjbL9SulLF6JdP+d+RcE j+vBDgRmjUCgBwYFK4EEACKhZANiAATLDeygsKUMFNmESNr6WP41V92ZmuCR1oxg 6pH/FRu9B8rA1Yf1tbUhoekUlE+NUYdpJ1EOKRgiQe/xyiw3anves1HsMpfE/EIZ L34laMbgevxqUWhUQX4ba042CyXzopM= -----END EC PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEA1XbjbFaU7hRBpZIeew7tj9hdRZ+u0s2KlB+oqrlw1wQG1D3E PVy+ADSk3ozBcAOcJIGZQjG0xVcjRiA8EEFunPTYMUZCqwOGJqMw5/ZocJ9HfgK9 0lOT0hFg/Zk5DpfZsZADT+qBcb8DxR383jdeeV6LCo7Ks4cR9ruvQ4mEAoxH7Ej4 zTLi9aBcefvZ4Zgp1soT4c6VSHy2LeN8n86wOJDWZUQsbtqeUeTu7j0eFbJJHDaZ wRTwQ4ihWHbCA8NuSYga0H6V0MF5P5oJDubxTkb7pRzH+bkXRCn3OLqdAABTaeZe StfpxsLC97x19NGxsOhxotBpf0FPwmzuP1He3QIDAQABAoIBACwZQoRoIp5ImwM8 e4WKoPM9jI9MnM453i4ZmDuk0bXpxAtmszrGBQ5/0auUQoYEiOZVy7aMFD9McCIV mLL3AYX1YxBS5oTz1mv2/Kx/EDZsAVX79QEVeQ1Fv9bEJ7BnGHcBPF3vIUzBXGMF fe7eW2sRaAIHW8LY3ZIuVdfK+fWYapaS3Kaasfpvg6ZPurjYcbZr2GbBzaTCWtF2 EZagKEfxjvLOhdyFPscVqj+GKI5rBncyz6IrV2qg21i00xU63KPGtl3Nt8nrcQeH Y0e16wFRe37ai7eO5QHYX+XsevueQWW3yTUpvpYs+VwfxwsVPlRraKihxVKPLYZl pGpXyOECgYEA+me4cHBc+HZiuCySQkmPj0CD3RDRcGfIaqlRftTclfvKHudenexq Zfj3CnPK70uxPNQtwnckbIjvR71zBaigd2pZlRvQeWIzVaE5tCZmHa2vZ1NAsLHP KiUfqiNfeBiGtVMZuLZRALyhAYNEoU+JBuJll7/OxRGlDaK1w12MHTUCgYEA2jvf Vp/4+t6Ctlz3hHxPk0DMS+gcIJMuHEnOKCJh90r6vFNOZApjJhg3cIw2UURZVU0Y w9Ufz+lCd3hVXfbsZbgl9EDKELcthLuBk34yYZ/dR26eWCwgOGZ3/kSQIIjVll/9 eDN9hIFlIodMVpr0WN1Du82EtzxYPk/8PkNkeAkCgYAtroZjXNxZJ5/S4a69ERZz l912kv7idsyFSOZpMQQdCJZTFPqZ7OtsNwM6kO1QwopPApZmh73JXyHoAJPfUGgV 4Pz+ytg5jMS4tnUEfIzclTcOro16rrWQhr1EGLft/Ot2YPasT/ZvH/pvgDchBpWF AABwsrlSEmn+FtT6EzLgkQKBgQC99MGJMEPTcd0LCU71hhLp1Mw/AjGBdTr8qo2E x7DIRP6M8GJal+QHo6qWD6W0BS9RHYOB6j//hEUzoo2D9ct9GtYGjmKUPC2lzGSU UpNeAH3mkHXJv9bn4OFvdJSTjSeE9da2SvNlZA/5BxW+iLBJrYcosFJmAGO7EXo5 ZAXOqQKBgB4lTiS7UetOkzDeW+AxHv4aHAQYiXZkS15w5Ks6UrNgXxwcYy/GqHlD kA6r/9QyKvFKQF2rtW+R4fb0OcmnTHpRZSw3SkAeoqTIrlNrqvYdkB2/4hci/jBe 3/+KXfw1s4vwBexiQ8K7xg+uDHG73nCOw2dW9SifKyzABGvJrP6b -----END RSA PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MHcCAQEEIN/nf4mUU2eK05XB6r4YRTxmvdIkwMyiAtjhE77BP/2woAoGCCqGSM49 AwEHoUQDQgAERwa2VHjuFopJ3V5yI4jklmKGz9NQFQ/+CGGoDjPbPoEfqWek7bUD MkCkRSay6H/lRvJMMdxrszF+rm/oCb5v4g== -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MHcCAQEEIJuDRJzSsM3EJSbP1QRQtnJY1Yc7PIhbWCVUIXjNw6dcoAoGCCqGSM49 AwEHoUQDQgAEc5KLPZ4kdcjuETtI7fz0vqa/1mcn3c+RrAotWcsrsLydZk+FDlgM vRBeC9p1HEPFXfZtpqBwvN62MZ8zwg4yzA== -----END EC PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEogIBAAKCAQEAs9imooHMr1U0//3cjwgLRjN3Y2GqluGLDjPqmsIKVAgHWCvH x5rDjeevxVxSvBP+OC6sD5vsdC/XqvX0mk0q9ha+PrF6F5Z0To76i11tgXCAIe9V ps5OHMZwS1jM0t80PhYbC9DOUv6m2j2hDaoIaTF0pGdnzcL2u3NPCTDI7KxMmNzb stkLpnKSbqwMmFYpZzl5HXm81nuiYBewLpHuIZSqbMTSzwBZBItSpHL4/xR0R92Q OWi4x6G3YKyBOxuiHbuIcuX1YM5HwLm5uu2IFKg64DlY3gStILIdwUr3crCKXiD/ HK7NWD0Ejz1ziBAMsQNE73uc0XQu/u2LrJFVfQIDAQABAoIBADGEKPz9N9neX+VL g/ptgI0nhmt6bHl2R871RFavriBMxZjlFPBEECt16tMwBCd8abYWQ5FYoNWshniv l1UUgguXX3Hrc24jIoqumxTb+FZ3HxA40SBIFQGfMTPNkzdL9RpTA8dRCj2Xl2Dn LvyQIBi2YSMSxWXFlCEwMkaZg/iFUZhFuOMz7xSAaGDpOP5Y9ZtDvNz67zEqMXL9 84Cn/sfvSi8Y+s/gjYphdGz1KYjiY2obiKSAV14ySkhZZHGIVRD4XzP4VZtJOWXQ bK/WeaZL4cGHT0urxdChMK/ydUNYaRfSTtglvhyJYJ7LWIQLyjp6bTIOovBgS3/P A8VsJYECgYEA4Onohppu3zyW80fW0W5jlNnFAD+OEiPlVof3dQqhX7EQzWYoLvpL U8IzP06VAYDRc7D/KEzOCELscrW6hWB8mkp2zZ9kVSY2sVTG9vug4UfQAahL35mO f/v2wcz3OPW+K/ayZGwJVfinNbWN4TNi/ZzuUZZ9QQ/jHopI0J+gB9UCgYEAzLQg 3WVpvmzt/wpvZPAl8JkgXdf29ScEzvogtNUe7eTv4rlF9JL/2pkhGf9p/aZim5+u EpJNABpVsbRBw2cfpXVwpubr5Ya18HDqnCdHEaZYpf0QBdogAi2K0bHigqXXAkuT gsNsHdiVc3rp3SLYU7bGeD/pkt/h0lAPilpLUwkCgYBsGoGVEO1xhyHW1RS/nRto FDPIJsQWnAJDUR7ztqRR5j15PDzcN5m1LIaNSyv7iPsjbFN3/1KYTfJwQEDikrnR PzFTK+WBt9hZ67GmTNPK9EVaRpYRZzFC+sxj4iyByDwbzXt5ISRrmhRkkFsdfyF5 XNB/jqGtgAFeUIEnJVI58QKBgHO//z1xlOOqsMEgY3DOIoXz8EtgTTK+h4eKBGh8 gmq+o66uWRI89RPktsT+mi5loSiimEnEFGpUedRsOyuE6m4jBDo8JXO6QrLdBqyZ wSQHzeS+PgsxFhxlKDP+xDhgEj4oAhdU7ZPK3mdYP1ld1LkxhvSEH01/7y9/Oepf uGwRAoGALFAZkhrseCt49KM9yDQt81oU6N7+lErHxeSFMVsOFdcHbCMOYlEF2Wdz aybFQybHxl8FZLQ9nkzWStawDcX1+gtVuBAJH/Y4ghAY9fihyfyggfD9FZ8r22N4 hHe9e9rM7Nb62pSrirL1Cg1V44U96F41Qqaw+AlM8ppPzf3uKi4= -----END RSA PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MHcCAQEEIAS1k1i1RKZOBPUVGVNYfhnFcopOQ/smAKu2H4bKl5scoAoGCCqGSM49 AwEHoUQDQgAEpBJ4b41L3mbGxB+rNM3nTynqnMdPlhgi0cAm68FdyIyWcOP6ugB0 VNVy/ckvh43JSe28CTN1YdnK2m+oCPR+Qw== -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MHcCAQEEIPzNoHRfL2J6Gy5KCoKL3xxtROO0/LrwS726vIcfWQKEoAoGCCqGSM49 AwEHoUQDQgAEJc0ELnmWJ/jsB8r0SSyJVzkhAPYbniOcbTriW/hzeZNvT+WD/lgS syIqqsWuI6ewnpFsDPgIrnU+pqHmk3f1Vg== -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MHcCAQEEIPsWVdAAwH8QVANjPNO3E/8zw0afNCjNTO6Ibt0YmHdVoAoGCCqGSM49 AwEHoUQDQgAE9YjQPHB4Xafb1mU+qi81rAHzqsUYQRPHrJynK0GKdtPCIA/HHzoy 0GPGQj+ogpOvreNegU60hDRGE1OGYN+E6Q== -----END EC PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEAs8UnTaWsS19hdhGElhIy1pJcHrepo/K1D7H+fpvPQtkgdngV yKfihazYAlsAiDjsTDmPLz0JYb8CeFNEiFy5Og3htlJPPnHfMoPjVb6rOkIUbBFX 8rdIPVJ82ltLRxjHWvZbdwif7hy6eOwwSY6evZKGhbacfrS9oyI+tjcq6AczcVhW V71/RqCKiGvvd0UaDAA9qDI154Nl6vx/VUK99g3Cdse1fq9q3g3ZUc4Wb6Xxyd1h Ca4zJHNDeUGOARPt3kZ6JFkDv2/NzsyYe26/cItDJ2tEBfZfr1cBezHomo7VMUJu 5QoEveq13al57fJnISCK7S6kM7iVGHfvpgvNIwIDAQABAoIBAC2pF/CK8hY65cBd drW/bZY+mpNaxwXTcdXIugFiheROzgYJPk83BTw6yKrgfmQbQTmjLREsiaOAJpp1 W+Te2FU8jWYHxgTwW2azRRzUTx1/Bzzjstj9YKXiu7+ijJ5EVu5twJGdaTHLrjlk lGc6iGtSOkTgOyObuMckvZT+sjE4peDMHgjTcX6vSCDqYWj+MHbafhgDOr1soA0F MiLh0yBXQwY10GZCkTzxhe3UGj88XcuTItTsTi5Zqjne0sjTsTk1od8QC9NhJnkI +DPweuw54jTPWYJzOA9KI/is7l5EM9ht2B/MCr/rbtfLB51j68/aPM5DUu+M9ZPy hperGUECgYEA4jMzTU3V9t7IwwNwafPAgkDqVFSRC58CNl36TDh1vBTeM+p45qfv wgGvZmDV45Zloe2h68oChJwpIE3kNEgcs64qY43+cDEQNOAdC4/OxnaziDn/HL1A bmbnD5QbtwGL9ClDmvwmcnjLhCG6hFZgfQ5g779KjbAJcemWUAGzbFMCgYEAy3QQ UoFgh8nbbVVkTzw6CyarKoayzwtl4W47NRxPLPggGGIoAzgFlKEl1zEpSZbN4DWK IY4OPp/KizNYewn5r+qNalS/eu1+S9mAgJKJ77zWP0Tf7BPjRazryd+w3EGWfFHC Gko0hLTNRgvgNFzr3QkHM3SCeVOsGxRtgNmfgfECgYEAmp+DPyGo1EOAGwZ7zoFo I+G6DQFt0PLV8VIWagniOTpOllB+arV7iDPcsXAaZaOGP8WP/P0u8XVKC6ITD8YH kK/KnBkRR6HSQUK9uAyKvVGg8csrX3ri01UWN6j3tQaio7mdVBFvOqrl+6GOvS3K cVHl45zwmqAuJKcXMAOpoa8CgYBmcgLmCI960IHVA/KGk2UGyGnX+AuBhdO/N6pI jACyPB6tKH/NXyAwPxS2zuJjU7RG+a6cRtOVZRCwFyKukc9QbWLX7+SbGYtG1jaG h0M9nHClWyEF1t3R78iq1iBQSBZmcySx6DuZtxDF/KTguQlrO2iM2FX6kc9Ps3GQ OATBgQKBgQDPg+aUJxxZJ3kOubfMJT4fuB1U1F0ozxKYW+PHFatxnY9Irq7YE6vv 6M5fM5/z3ojbqsgz1svKVLBEcrznkEuOOEECUDr+XySDfolOuZdAr0MnMN/wsD2w clV+LJo3709XJLdH/pv4jAXxGw1RZq/8yronhvHY8C1Fi5TrbFd7WA== -----END RSA PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MIGkAgEBBDDGu0TEOm2hwriKqEvOilsId7aOaU1jt1w1NbhSZZLDGooEWtbQ9gZP 8vnjZIAZ3Q2gBwYFK4EEACKhZANiAARorMg2AT1MwKo8XFm2oN5REOlohJuyr81p +6Q6ntZZ035hT8dXJsnCS4fn6WwiyccivAW/qpTT07oU5p32Yj46hvm8GSwdgmHE 3gdC8cNSRaba1GbCpS52Ybx7suSeJqI= -----END EC PRIVATE KEY----- - | -----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEAqnfhYzboN6P+B3DgQE8JUshnrwrpG5Hv4gxRmd2iSsPIIe7s mhCI/yYom8jTJiD1oeIFJMPIt/brpdk/LhlbIUE4//7kKb0+ZpERgNvG5/4gOZmt otmJCDkNIa8y5yxAsofUf3I+5hxmsqaoNdUc6BCPRLuNB4Nj648+lT+qXJZc+SID 5fQY1+bhD0OMJp2r1K5bx8sHV7b0do1srhP8IbYdd1Jt/njFfJqqijMZQebl9/E4 QeXAIkgEssp2GWc0V3AOW5L6patwf41XEFr36aUOIYVTH4d3nurKvJ3COvirj0C6 mXl4WcuFtZxhvfDy2RubSQkdIXd6/F6TQnQwuwIDAQABAoIBADqlobozgrLZzaSb tdsKFggQAHPdShN9Is1fNZe9A3+7WZgrDeV3ONqnMyNddR9SCY/XJbPfU6fO4IWf dzgR6yNGwCh6dd7SR6ybzizJ7+WSrV2DvJQhSR62GglzsAyOUffZ+UabdH5QWRiv c4GJvzcrs06PQ9bI4lCBaKOKUr8lP9busMxF+z4FAa/Cy1vI43rZJ+l1MsO+rTuL lDk0aKMQJa5UQcu1Hg4D8vsyIa9IhgR9SYadGmWmObnsHiW8wVeB7b4PGekP4ywH GA1nIZZpA3V5HhyrBb9DIZAq799qteYOG/FyrF7DIsokxe2j63qZyFLeFo3NGBPx n/JdptkCgYEA4O+SkacynV7ToF77oHLZmj4qyMYOUGLMUH+Tiuh24lTeBQysLfMF k6efgJ4liZBGvK4lxB2/IUpRQo52z/rqjH+XkPJ8h7VwzBbo8QjgQIvbHfiPjS+Z 9+wQnPrQHyXhK6wJO4Ho2U3SFeuIjMiC7+pOBhuBC3zHLvrgwn8KKQ0CgYEAwgKm qxtPmGFgX3Ai6p3zsivheZy1HcSzxD3oNM5/KXO6gnVHC4KISCcMV61jfX0ToO/s hDslpNdjnejPf4olsalTM6Sv2qIXvLgBCRFgxbkdMu1+BtEWrN+LEM0BCVJaB+C4 A1ljhmdM+T0K08jYFGmDyD201Uw4yRID1w24PucCgYEAyfGMb0PixzKZYMOluTkj b70cgECAHV91+1duSSnHgg+bfIESG/axLQ0ywDA7lzN2rnLS6S2jqOml5tEsjjDB Xv42PyXU86nL6Q8wdyX23zwwrsm3Z5Qy8Uh46dar/yrs6156s3hAasfZM2DQqURj ea2r+wO6aWvPD7ihDT0tDAkCgYAEEIQnX4oaWifnt/SzT53UZMDziEnvFrjhap6b xJu7ZZZJt2VGo3Rxdof2qkZEUcOAgqZE2uxd+Lk4jLEULfO+NhrtIQ0iGnU+2egD pZ6OZeNrtrgGMok0E/bY4kKcTGJged/BCjVgknd1XUcFytZkDxXYsxo/wboK1FrK PZpXjwKBgQCIuH4M3E1THAMXBiBh1BEdV2IY7xq7S8dbBZ6wmPmQas1JCMGIdecn 6xIp8Gq1Kbmc9rkxUS0wjOKFUUFyKf5qFxcBKnpe1KEvxMM3w7BTkb90gkiBRQCX UT1A1/vMibB/Enu9VuOrnBwF5b4uUX0n/3+J3ldaqUgLYT+CmSVkTA== -----END RSA PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MHcCAQEEIFVQsMIGQt5UF3MW+qgMSEnpjnFEbhRoIL1hlQLxBY0boAoGCCqGSM49 AwEHoUQDQgAEq4EgohKMS8jhdab1CC5fbgebpImxfb7CLNoqPtbeY/VwaIOd8f6v 9J+E98Riv+PeByFdQJI+cSsf3l+XTpT4xw== -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MIGkAgEBBDAxE3km0eI/hTGeJ4nWV4pEdpXHmKw2lnJgHsH4zRUolHS2sbsCrdt9 BTjAhQ3cQ3igBwYFK4EEACKhZANiAAQmbyhxSlDSB7g4NUWKI1nzu2HaYIZBi0RK Yxx9KNFCaFqsagCDZjv7rLiqdoQXL5uIu485iAjVFQprzixMvJSSSgLiCSDEKw3S o++LStyRqE9hWF+bYG32I5S4aTOvXaE= -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MHcCAQEEIFUpz+nJGqSD28yf7Q7O7t/RszqNCuG/dOr4JfBQubHQoAoGCCqGSM49 AwEHoUQDQgAEcSkw8jUwVEC3K2PMHa1R/WYmAjamJq0MvYYZPSZHdmU6yAKFuWOA 46pPYITI/uJmQ0xrsjcQHLt7xZqrcJ/HPA== -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MIGkAgEBBDAQjdUn0ar0MsdMoAP6bOIhFyAhVOmcYp3pCRxbOPmkGEwCCLcd8R3Y i2hZNtz2yQmgBwYFK4EEACKhZANiAASpgrScpAZcwUdr7vbA330WvtcpbEJiDP85 jDsYGJkZOi00JVTDiCQ1of0sO/I6hVZA9ZpSUePpUC7MVpsi/uLsm9+kA0JW06CP qIu99Gmbb3QiAPb8dkSWpL583JLsK2Y= -----END EC PRIVATE KEY----- - | -----BEGIN EC PRIVATE KEY----- MHcCAQEEIJZ8hqhcnCQbMCdNLsIyT2DeIjmbAeXcGld69NqzkTRIoAoGCCqGSM49 AwEHoUQDQgAEKKZ2xYZ1Z7WrmksWeeCERIyLilzq5qA5+qi+C60OWvRZhNgrY2qw VRuS5fX1FrF5tUfMy12IIfmNOKefHKiDwg== -----END EC PRIVATE KEY----- acme-client-2.0.9/spec/http01_spec.rb000066400000000000000000000014351411343312700173160ustar00rootroot00000000000000# frozen_string_literal: true require 'spec_helper' describe Acme::Client::Resources::Challenges::HTTP01 do let(:private_key) { generate_private_key } let(:client) do Acme::Client.new(private_key: private_key, directory: DIRECTORY_URL) end let(:attributes) do { status: 'pending', url: 'https://example.com/foo/bar', token: 'example_token' } end let(:http01) do Acme::Client::Resources::Challenges::HTTP01.new(client, **attributes) end context 'file_content' do it 'match the key_authorization' do expect(http01.file_content).to eq(http01.key_authorization) end end context 'filename' do it 'returns the filename path for the http challenge' do expect(http01.filename).to eq('.well-known/acme-challenge/example_token') end end end acme-client-2.0.9/spec/jwk_spec.rb000066400000000000000000000054651411343312700170000ustar00rootroot00000000000000require 'spec_helper' describe Acme::Client::JWK do let(:private_key) { generate_key(key_class) } subject { described_class.new(private_key) } describe described_class::RSA do let(:key_class) { OpenSSL::PKey::RSA } describe '#to_json' do it 'returns a String' do expect(subject.to_json).to be_a(String) end end describe '#to_h' do it 'returns a Hash' do expect(subject.to_h).to be_a(Hash) end end describe '#sign' do let(:message) { 'hello, world' } it 'returns a String' do expect(subject.sign(message)).to be_a(String) end end describe '#jwa_alg' do it 'returns a String' do expect(subject.jwa_alg).to be_a(String) end end describe '#jwt' do it 'generates a valid JWT' do jws_s = subject.jws(header: { 'a-header' => 'header-value' }, payload: { 'some' => 'data' }) jws = JSON.parse(jws_s) header = JSON.parse(Base64.decode64(jws['protected'])) payload = JSON.parse(Base64.decode64(jws['payload'])) expect(header).to include('a-header' => 'header-value') expect(header['typ']).to eq('JWT') expect(header['alg']).to eq('RS256') expect(header['jwk']['kty']).to eq('RSA') expect(payload).to include('some' => 'data') end end end describe described_class::ECDSA do let(:key_class) { OpenSSL::PKey::EC } describe '#to_json' do it 'returns a String' do expect(subject.to_json).to be_a(String) end end describe '#to_h' do it 'returns a Hash' do expect(subject.to_h).to be_a(Hash) end end describe '#sign' do let(:message) { 'hello, world' } it 'returns a String' do expect(subject.sign(message)).to be_a(String) end it 'is not ASN.1 encoded' do expect { OpenSSL::ASN1.decode(subject.sign(message)) }.to raise_error(OpenSSL::ASN1::ASN1Error) end end describe '#jwa_alg' do it 'returns a String' do expect(subject.jwa_alg).to be_a(String) end end describe '#jwt' do it 'generates a valid JWT' do jws_s = subject.jws(header: { 'a-header' => 'header-value' }, payload: { 'some' => 'data' }) jws = JSON.parse(jws_s) header = JSON.parse(Base64.decode64(jws['protected'])) payload = JSON.parse(Base64.decode64(jws['payload'])) expect(header).to include('a-header' => 'header-value') expect(header['typ']).to eq('JWT') expect(%w(ES256 ES384 ES512)).to include(header['alg']) expect(header['jwk']['kty']).to eq('EC') expect(payload).to include('some' => 'data') end end end def generate_key(klass) while k = generate_private_key return k if k.is_a?(klass) end end end acme-client-2.0.9/spec/order_spec.rb000066400000000000000000000065501411343312700173140ustar00rootroot00000000000000require 'spec_helper' describe Acme::Client::Resources::Order do let(:private_key) { generate_private_key } let(:unregistered_client) do client = Acme::Client.new(private_key: private_key, directory: DIRECTORY_URL) client.new_account(contact: 'mailto:info@example.com', terms_of_service_agreed: true) client end let(:client) do client = Acme::Client.new(private_key: private_key, directory: DIRECTORY_URL) client.new_account(contact: 'mailto:info@example.com', terms_of_service_agreed: true) client end let(:order) do client.new_order(identifiers: [{ type: 'dns', value: 'example.com' }]) end context 'status' do it 'send the agreement for the terms', vcr: { cassette_name: 'order_status' } do expect(order.status).to eq('pending') end end context 'finalize' do let(:authorization) { order.authorizations.first } let(:challenge) { authorization.http01 } it 'call client finalize failure', vcr: { cassette_name: 'order_finalize_fail' } do csr = Acme::Client::CertificateRequest.new(names: %w[example.com]) expect { order.finalize(csr: csr) }.to raise_error(Acme::Client::Error::Unauthorized) end it 'call client finalize sucess', vcr: { cassette_name: 'order_finalize_sucess' } do serve_once(challenge.file_content) do challenge.request_validation end csr = Acme::Client::CertificateRequest.new(names: %w[example.com]) expect { order.finalize(csr: csr) }.not_to raise_error end end context 'certificate' do let(:authorization) { order.authorizations.first } let(:challenge) { authorization.http01 } let(:finalized_order) do serve_once(challenge.file_content) do challenge.request_validation end csr = Acme::Client::CertificateRequest.new(names: %w[example.com]) order.finalize(csr: csr) order.reload order end it 'call client certificate sucess', vcr: { cassette_name: 'order_certificate_download_sucess' } do certificate = finalized_order.certificate expect { OpenSSL::X509::Certificate.new(certificate) }.not_to raise_error end it 'call client certificate fail', vcr: { cassette_name: 'order_certificate_download_fail' } do expect { order.certificate }.to raise_error(Acme::Client::Error::CertificateNotReady) end it 'call client certificate with a force_chain', vcr: { cassette_name: 'order_certificate_download_preferred_chain' } do force_chain_name = 'Pebble Root CA 769220' expect { finalized_order.certificate(force_chain: force_chain_name) }.not_to raise_error end it 'call client certificate with an unmatched force_chain', vcr: { cassette_name: 'order_certificate_download_preferred_chain' } do force_chain_name = 'Fail Test CA' expect { finalized_order.certificate(force_chain: force_chain_name) }.to raise_error(Acme::Client::Error::ForcedChainNotFound) end end context 'reload' do it 'reload a update attributes', vcr: { cassette_name: 'order_reload' } do expect { order.reload }.not_to raise_error expect(order.url).not_to be_nil end end context 'authorizations' do it 'load authorizations', vcr: { cassette_name: 'order_authorizations' } do authorizations = order.authorizations expect(authorizations).to all(be_a(Acme::Client::Resources::Authorization)) end end end acme-client-2.0.9/spec/self_sign_certificate_spec.rb000066400000000000000000000025161411343312700225120ustar00rootroot00000000000000require 'spec_helper' describe Acme::Client::SelfSignCertificate do it 'generate a self sign certificate' do self_sign_certificate = Acme::Client::SelfSignCertificate.new(subject_alt_names: ['test.example.org']) expect(self_sign_certificate.certificate).to be_a(OpenSSL::X509::Certificate) expect(self_sign_certificate.private_key).to be_a(OpenSSL::PKey::RSA) end it 'generate a self sign certificate from a provided private key' do private_key = generate_private_key self_sign_certificate = Acme::Client::SelfSignCertificate.new(private_key: private_key, subject_alt_names: ['test.example.org']) expect(self_sign_certificate.certificate).to be_a(OpenSSL::X509::Certificate) expect(self_sign_certificate.private_key).to be(private_key) end it 'sets the certificates version' do private_key = generate_private_key self_sign_certificate = Acme::Client::SelfSignCertificate.new(private_key: private_key, subject_alt_names: ['test.example.org']) expect(self_sign_certificate.certificate.version).to eql(2) end it 'sets the certificates serial number' do private_key = generate_private_key self_sign_certificate = Acme::Client::SelfSignCertificate.new(private_key: private_key, subject_alt_names: ['test.example.org']) expect(self_sign_certificate.certificate.serial.to_i).to eql(1) end end acme-client-2.0.9/spec/spec_helper.rb000066400000000000000000000020161411343312700174510ustar00rootroot00000000000000$LOAD_PATH.unshift File.join(__dir__, '../lib') $LOAD_PATH.unshift File.join(__dir__, 'support') require 'openssl' DIRECTORY_URL = ENV['ACME_DIRECTORY_URL'] || 'https://127.0.0.1/directory' require 'acme/client' require 'rspec' require 'vcr' require 'webmock/rspec' require 'asn1_helper' require 'http_helper' require 'retry_helper' require 'ssl_helper' require 'tls_helper' require 'profile_helper' if ENV['RUBY_PROF'] RSpec.configure do |c| c.include Asn1Helper c.include HttpHelper c.include TlsHelper c.include RetryHelper c.include SSLHelper end VCR.configure do |c| c.cassette_library_dir = 'spec/cassettes' c.configure_rspec_metadata! c.hook_into :webmock c.ignore_localhost = false c.default_cassette_options = { record: :once, match_requests_on: [:method, :path, :query] } c.allow_http_connections_when_no_cassette = false c.filter_sensitive_data('') do DIRECTORY_URL end c.filter_sensitive_data('') do DIRECTORY_URL.gsub(%r[\/[^\/]+$], '') end end acme-client-2.0.9/spec/support/000077500000000000000000000000001411343312700163505ustar00rootroot00000000000000acme-client-2.0.9/spec/support/asn1_helper.rb000066400000000000000000000003051411343312700210740ustar00rootroot00000000000000module Asn1Helper def asn1_dig(attribute) if OpenSSL::VERSION < '2.0.0' attribute.value.first.first.value else attribute.value.value.first.value.first.value end end end acme-client-2.0.9/spec/support/http_helper.rb000066400000000000000000000010111411343312700212040ustar00rootroot00000000000000require 'webrick' module HttpHelper def serve_once(body) return yield unless VCR.real_http_connections_allowed? dev_null = WEBrick::BasicLog.new(StringIO.new) server = WEBrick::HTTPServer.new(Port: 5002, Logger: dev_null, AccessLog: dev_null) begin thread = Thread.new do server.mount_proc('/') do |_, response| response.body = body end server.start end yield sleep(1) ensure server.shutdown thread.join(5) end end end acme-client-2.0.9/spec/support/profile_helper.rb000066400000000000000000000003401411343312700216710ustar00rootroot00000000000000require 'ruby-prof' RSpec.configure do |c| c.before(:suite) do RubyProf.start end c.after(:suite) do result = RubyProf.stop printer = RubyProf::FlatPrinter.new(result) printer.print(STDOUT) end end acme-client-2.0.9/spec/support/retry_helper.rb000066400000000000000000000003231411343312700213770ustar00rootroot00000000000000module RetryHelper def retry_until(condition:, retry_count: 3, wait: 0.25) count = 0 until condition.call yield raise 'timed out' if count > retry_count count = + 1 end end end acme-client-2.0.9/spec/support/ssl_helper.rb000066400000000000000000000051311411343312700210350ustar00rootroot00000000000000require 'yaml' module SSLHelper class KeyStash KEYSTASH_PATH = File.join(__dir__, '../fixtures/keystash.yml') def initialize @keystash = load @iter = @keystash.each end def next @iter.next rescue StopIteration @keystash << generate_key save @keystash.last end def generate_key case (rand * 4).to_i when 0 OpenSSL::PKey::RSA.new(2048) when 1 generate_ecdsa_key('prime256v1') when 2 generate_ecdsa_key('secp384r1') when 3 OpenSSL::PKey::RSA.new(2048) # TODO: ECDSA curve P-521 not allowed at the moment. # generate_ecdsa_key('secp521r1') end end def generate_ecdsa_key(curve) k = OpenSSL::PKey::EC.new(curve) k.generate_key Acme::Client::CertificateRequest::ECKeyPatch.new(k) end private def load if File.exist?(KEYSTASH_PATH) YAML.load_file(KEYSTASH_PATH).shuffle.map do |pem| begin OpenSSL::PKey::RSA.new(pem) rescue StandardError Acme::Client::CertificateRequest::ECKeyPatch.new(pem) end end else [] end end def save File.write(KEYSTASH_PATH, YAML.dump(@keystash.map(&:to_pem))) end end KEYSTASH = KeyStash.new def generate_private_key KEYSTASH.next end def generate_csr(common_name, private_key) request = OpenSSL::X509::Request.new request.subject = OpenSSL::X509::Name.new( [ [ 'CN', common_name, OpenSSL::ASN1::UTF8STRING ] ] ) Acme::Client::Util.set_public_key(request, private_key) request.sign(private_key, OpenSSL::Digest::SHA256.new) request end # Verify a CSR's signature. # # csr - A OpenSSL::X509::Request instance. # priv - An OpenSSL::PKey::EC or OpenSSL::PKey::RSA instance. # # Returns boolean. def verify_csr(csr, priv) case priv when OpenSSL::PKey::EC csr.verify(priv) when OpenSSL::PKey::RSA csr.verify(priv.public_key) else raise ArgumentError, 'priv must be EC or RSA' end end # Export a private key's public key in DER format. # # priv - An OpenSSL::PKey::EC or OpenSSL::PKey::RSA instance. # # Returns a String. def public_key_to_pem(private_key) case private_key when OpenSSL::PKey::EC dup = OpenSSL::PKey::EC.new(private_key.to_der) dup.private_key = nil dup.to_pem when OpenSSL::PKey::RSA private_key.public_key.to_pem else raise ArgumentError, 'private_key must be EC or RSA' end end end acme-client-2.0.9/spec/support/tls_helper.rb000066400000000000000000000011211411343312700210310ustar00rootroot00000000000000require 'socket' module TlsHelper def listen_tls(certificate, private_key) return yield unless VCR.real_http_connections_allowed? server = tls_server(certificate, private_key) begin thread = Thread.new do server.accept end yield ensure server.close thread.join(5) end end def tls_server(certificate, private_key) server = TCPServer.new(5001) ssl_context = OpenSSL::SSL::SSLContext.new ssl_context.cert = certificate ssl_context.key = private_key OpenSSL::SSL::SSLServer.new(server, ssl_context) end end acme-client-2.0.9/spec/util_spec.rb000066400000000000000000000007161411343312700171540ustar00rootroot00000000000000require 'spec_helper' describe Acme::Client::JWK do context '#decode_link_headers' do let(:example) do '; rel="up", ; rel="alt", ; rel="alt"' end it 'extract link value and in a hash with rel as they key' do links = Acme::Client::Util.decode_link_headers(example) expect(links).to be_a(Hash) expect(links['up']).to eq(['uri1']) expect(links['alt'].sort).to eq(%w(uri2 uri3).sort) end end end