Giter VIP home page Giter VIP logo

heroku-cli-plugin-certs-v5's Introduction

heroku-certs

Package moved to: https://github.com/heroku/cli/tree/master/packages/certs-v5

Build Status

Commands

heroku certs

list SSL certificates for an app

USAGE
  $ heroku certs

OPTIONS
  -a, --app=app        (required) app to run command against
  -r, --remote=remote  git remote of app to use

heroku certs:add CRT KEY

add an SSL certificate to an app

USAGE
  $ heroku certs:add CRT KEY

OPTIONS
  -a, --app=app        (required) app to run command against
  -r, --remote=remote  git remote of app to use
  --bypass             bypass the trust chain completion step
  --domains=domains    domains to create after certificate upload
  --type=type          type to create, either 'sni' or 'endpoint'

DESCRIPTION
  Note: certificates with PEM encoding are also valid

EXAMPLES
  $ heroku certs:add example.com.crt example.com.key

  Certificate Intermediary:
  $ heroku certs:add intermediary.crt example.com.crt example.com.key

heroku certs:auto

show ACM status for an app

USAGE
  $ heroku certs:auto

OPTIONS
  -a, --app=app        (required) app to run command against
  -r, --remote=remote  git remote of app to use

heroku certs:auto:disable

disable ACM for an app

USAGE
  $ heroku certs:auto:disable

OPTIONS
  -a, --app=app        (required) app to run command against
  -r, --remote=remote  git remote of app to use

heroku certs:auto:enable

enable ACM status for an app

USAGE
  $ heroku certs:auto:enable

OPTIONS
  -a, --app=app        (required) app to run command against
  -r, --remote=remote  git remote of app to use

heroku certs:auto:refresh

refresh ACM for an app

USAGE
  $ heroku certs:auto:refresh

OPTIONS
  -a, --app=app        (required) app to run command against
  -r, --remote=remote  git remote of app to use

heroku certs:chain

print an ordered & complete chain for a certificate

USAGE
  $ heroku certs:chain

OPTIONS
  -a, --app=app        (required) app to run command against
  -r, --remote=remote  git remote of app to use

heroku certs:generate DOMAIN

generate a key and a CSR or self-signed certificate

USAGE
  $ heroku certs:generate DOMAIN

OPTIONS
  -a, --app=app        (required) app to run command against
  -r, --remote=remote  git remote of app to use
  --area=area          sub-country area (state, province, etc.) of owner
  --city=city          city of owner
  --country=country    country of owner, as a two-letter ISO country code
  --keysize=keysize    RSA key size in bits (default: 2048)
  --now                do not prompt for any owner information
  --owner=owner        name of organization certificate belongs to
  --selfsigned         generate a self-signed certificate instead of a CSR
  --subject=subject    specify entire certificate subject

DESCRIPTION
  Generate a key and certificate signing request (or self-signed certificate)
  for an app. Prompts for information to put in the certificate unless --now
  is used, or at least one of the --subject, --owner, --country, --area, or
  --city options is specified.

EXAMPLES
  $ heroku certs:generate example.com

heroku certs:info

show certificate information for an SSL certificate

USAGE
  $ heroku certs:info

OPTIONS
  -a, --app=app        (required) app to run command against
  -r, --remote=remote  git remote of app to use
  --endpoint=endpoint  endpoint to check info on
  --name=name          name to check info on

heroku certs:key

print the correct key for the given certificate

USAGE
  $ heroku certs:key

OPTIONS
  -a, --app=app        (required) app to run command against
  -r, --remote=remote  git remote of app to use

DESCRIPTION
  You must pass one single certificate, and one or more keys.
  The first key that signs the certificate will be printed back.

EXAMPLES
  $ heroku certs:key example.com.crt example.com.key

heroku certs:remove

remove an SSL certificate from an app

USAGE
  $ heroku certs:remove

OPTIONS
  -a, --app=app        (required) app to run command against
  -r, --remote=remote  git remote of app to use
  --endpoint=endpoint  endpoint to remove
  --name=name          name to remove

heroku certs:rollback

rollback an SSL certificate from an app

USAGE
  $ heroku certs:rollback

OPTIONS
  -a, --app=app        (required) app to run command against
  -r, --remote=remote  git remote of app to use
  --endpoint=endpoint  endpoint to rollback
  --name=name          name to rollback

heroku certs:update CRT KEY

update an SSL certificate on an app

USAGE
  $ heroku certs:update CRT KEY

OPTIONS
  -a, --app=app        (required) app to run command against
  -r, --remote=remote  git remote of app to use
  --bypass             bypass the trust chain completion step
  --endpoint=endpoint  endpoint to update
  --name=name          name to update

DESCRIPTION
  Note: certificates with PEM encoding are also valid

EXAMPLES
  $ heroku certs:update example.com.crt example.com.key

  Certificate Intermediary:
  $ heroku certs:update intermediary.crt example.com.crt example.com.key

heroku-cli-plugin-certs-v5's People

Contributors

brettgoulder avatar cyx avatar fivetanley avatar jdx avatar karatecowboy avatar rasphilco avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

heroku-cli-plugin-certs-v5's Issues

Bugs when specifying a name

❯ heroku _certs
Name                    Endpoint                             Common Name(s)        Expires               Trusted  Type
──────────────────────  ───────────────────────────────────  ────────────────────  ────────────────────  ───────  ────────
procompsognathus-87601  us-east-1-a-sni.route.herokuapp.com  www.brettgoulder.com  2017-03-21 21:35 UTC  False    SNI
hyogo-67203             hyogo-67203.herokussl.com            www.brettgoulder.com  2017-03-21 21:35 UTC  False    Endpoint

~/code/bretts-test-app master*
❯ heroku _certs:remove hyogo-67203
 ▸    Error: Unexpected argument hyogo-67203
 ▸    Usage: heroku _certs:remove
 ▸    You gave this command too many arguments. Try the command again without these extra arguments.
 ▸
 ▸    See more information with heroku _certs:remove --help

~/code/bretts-test-app master*
❯ heroku _certs:remove
 ▸    Must pass --name when more than one endpoint

heroku _certs:remove hyogo-67203 should work, right?

Naming

Let's rename the command, repo, to heroku ssl.

It'll be easier to put that in front of customers than heroku sni.

Clarify how to provide intermediate certificates with `heroku certs:add`

Currently the UX for adding a certificate plus its intermediates is slightly confusing, since:

It looks like I wasn't the only one who wasn't sure what to do with the intermediate cert:
https://stackoverflow.com/questions/38447944/heroku-ssl-install-intermediate-cert
https://stackoverflow.com/questions/23763411/uploading-ssl-certificate-to-heroku

And a number of guides have popped up to try and document it:
http://www.joshwright.com/tips/setup-a-godaddy-ssl-certificate-on-heroku ("Here's the part that the Heroku docs don't explain...")
http://ryan.mcgeary.org/2011/09/16/how-to-add-a-dnsimple-ssl-certificate-to-heroku/

As such, it would be great to:

  1. update the heroku certs:add help text to clarify that:
  • the reference to CRT can be either a .crt or .pem file, not just a .crt
  • the CRT is actually "certificate concatenated with intermediate certificates"
  1. Update the devcenter docs, so that they don't imply that heroku certs:add takes three arguments, for example by:
  • changing "Add your certificate, any intermediate certificates bundles, and private key..." to "Add your certificate (including any intermediate certificates), and private key..."
  • updating the example heroku certs:add code block to show the cat example.crt intermediates-bundle.crt > server.crt line too.

The current help text for reference:

$ heroku certs:add --help
Usage: heroku certs:add CRT KEY

add an SSL certificate to an app

 -a, --app APP       # app to run command against
 -r, --remote REMOTE # git remote of app to run command against
 --bypass            # bypass the trust chain completion step
 --domains DOMAINS   # domains to create after certificate upload
 --type TYPE         # type to create, either 'sni' or 'endpoint'

Example:

 $ heroku certs:add example.com.crt example.com.key

Many thanks!

Add help for commands

I think most of these would benefit from adding help with examples since they're not obvious how to use. Especially for certs:add, certs:generate, certs:key, and certs:update

help descriptions are too long

ideally these should fit in 80 characters:

screen shot 2016-05-10 at 3 30 09 pm

also, they should not begin with uppercase characters or end in periods (as described in the style guide)

Make `heroku certs:add` warn if certificate bundle includes anchor/root certificate

SSL Test is reporting that one of our Heroku-hosted domains has Chain issues: Contains anchor - ie the root CA certificate was unnecessarily included in the bundle, when it already exists in the browser trust store, so doesn't need to be sent out over the wire.

Whilst this doesn't cause any breakage, it's not recommended for performance reasons, so it would be great if heroku certs:add warned in a such a case, so users would realise they had done so. (We have to get the WebOps team to upload the SSL certs since we don't have access ourselves, so the less error-prone we can make the process, the better).

This seems like something that could be verified via the call to ssl-doctor (after appropriate changes there).

Many thanks!

Fails on Windows 10

npm install heroku-certs fails with

npm ERR! tar.unpack untar error C:\Users***\AppData\Local\heroku\npm\heroku-certs\1.1.12\package.tgz
npm WARN plugins No description
npm WARN plugins No repository field.
npm WARN plugins No license field.
npm ERR! Windows_NT 10.0.10586
npm ERR! argv "C:\Users*_\AppData\Local\heroku\cli\lib\node.exe" "C:\Users_**\AppData\Local\heroku\cli\lib\npm\cli.js" "install" "heroku-certs" "--loglevel=info"
npm ERR! node v6.2.1
npm ERR! npm v3.9.3
npm ERR! path C:\Users*
_\AppData\Local\heroku\plugins\node_modules.staging\heroku-certs-e1807e29_.thawing-temple-8799.com.key
npm ERR! code ENOENT
npm ERR! errno -4058
npm ERR! syscall open

npm ERR! enoent ENOENT: no such file or directory, open 'C:\Users***\AppData\Local\heroku\plugins\node_modules.staging\heroku-certs-e1807e29*.thawing-temple-8799.com.key'
npm ERR! enoent ENOENT: no such file or directory, open 'C:\Users**_\AppData\Local\heroku\plugins\node_modules.staging\heroku-certs-e1807e29_.thawing-temple-8799.com.key'
npm ERR! enoent This is most likely not a problem with npm itself
npm ERR! enoent and is related to npm not being able to find a file.
npm ERR! enoent

Add `certs:auto:wait`

Some migration flows where users move to ACM may involve waiting for the ACM process to complete getting the first cert (before removing old manually added ones). It'd be good to have a wait command for that.

Skip the domain adding check if the cert's common name is a wildcard

The one support ticket we commonly see for the CLI is folks trying to add a wildcard cert, eg. *.example.com, to multiple apps and then getting tripped up during the domain adding suggestion.

Let's just skip the domain adding check if the common name of the cert is a wildcard. It will result in a much better end user experience.

cc @ransombriggs

Type for Private Spaces app

It is sometimes confusing that Type for an endpoint on a Private Spaces app is shown as Endpoint while SSL Endpoint add-on is not required on the app and SNI extension is required on client. Might it be possible to show Type as, say, Private Spaces for such an app to avoid confusion.

should be written with standard

since this will be a core plugin, it should be in standard.js like the others. This doesn't have to happen before GA, but should at some point.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.