Package: vcert
This open source project is community-supported.To report a problem or share an idea, useIssues; and if you have a suggestion for fixing the issue, please include those details, too.
In addition, usePull Requeststo contribute actual bug fixes or proposed enhancements.
We welcome and appreciate all contributions. Got questions or want to discuss something with our team?Join us on Slack!VCert PythonVCert Python is a Python library and SDK  designed to simplify key generation and enrollment of machine identities
(also known as SSL/TLS certificates and keys) that comply with enterprise security policy by using theVenafi Trust Protection PlatformorVenafi as a Service.This implementation is based on the original Go library,https://github.com/Venafi/vcert.CompatibilityStarting version 0.14.0 vcert-python only supports Python 3.6 or higherVCert releases are tested using the latest version of Trust Protection Platform.  Thelatest VCert releaseshould be compatible with Trust Protection Platform 17.3 or higher based on the subset of API methods it consumes.InstallationGet the library using pip:pip install vcertYou also can install latest version from github:pip install https://github.com/Venafi/vcert-python/archive/master.zipIf installation fails collecting dependancies, make sure your python setuptools is up to date. Run the following command to upgrade to the latest version of setuptools.pip install setuptools -UUsage exampleFor code samples of programmatic use, please review the files in/examples.For Trust Protection Platform, thezoneformat is the DN of a policy with or without the "\VED\Policy" prefix (e.g. "\VED\Policy\Certificates\VCert" or simply "Certificates\VCert")For Venafi as a Service, thezoneformat is the name of an OutagePREDICT Application and the API Alias of an Issuing Template assigned to it delimited by a single backslash character (e.g. "My Application\My CIT")Prerequisites for using with Trust Protection PlatformA user account that has an authentication token with "certificate:manage,revoke" scope (i.e.
access to the "Venafi VCert SDK" API Application as of 20.1) or has been granted WebSDK AccessA folder (zone) where the user has been granted the following permissions: View, Read, Write,
Create, Revoke (for the revoke action), and Private Key Read (for the pickup action when CSR is
service generated)Policy applied to the folder which specifies:CA Template that Trust Protection Platform will use to enroll certificate requests submitted by VCertSubject DN values for Organizational Unit (OU), Organization (O), City (L), State (ST) and Country (C)Management Type not locked or locked to 'Enrollment'Certificate Signing Request (CSR) Generation not locked or locked to 'Service Generated CSR'Generate Key/CSR on Application not locked or locked to 'No'(Recommended) Disable Automatic Renewal set to 'Yes'(Recommended) Key Bit Strength set to 2048 or higher(Recommended) Domain Whitelisting policy appropriately assignedThe requirement for the CA Template to be assigned by policy follows a long standing Venafi best
practice which also met our design objective to keep the certificate request process simple for
VCert users. If you require the ability to specify the CA Template with the request you can use the
TPP REST APIs but please be advised this goes against Venafi recommendations.Prerequisites for using with Venafi as a ServiceThe Venafi as a Service REST API is accessible athttps://api.venafi.cloudorhttps://api.venafi.eu(if you have an EU account) from the system where VCert
will be executed.You have successfully registered for a Venafi as a Service account, have been granted at least the
"Resource Owner" role, and know your API key.A CA Account and Issuing Template exist and have been configured with:Recommended Settings values for:Organizational Unit (OU)Organization (O)City/Locality (L)State/Province (ST)Country (C)Issuing Rules that:(Recommended) Limits Common Name and Subject Alternative Name to domains that are allowed by your organization(Recommended) Restricts the Key Length to 2048 or higher(Recommended) Does not allow Private Key ReuseAn Application exists where you are among the owners, and you know the Application Name.An Issuing Template is assigned to the Application, and you know its API Alias.Contributing to VCertVenafi welcomes contributions from the developer community.Fork it to your account (https://github.com/Venafi/vcert-python/fork)Clone your fork (git clone git@github.com:youracct/vcert-python.git)Create a feature branch (git checkout -b your-branch-name)Implement and test your changesCommit your changes (git commit -am 'Added some cool functionality')Push to the branch (git push origin your-branch-name)Create a new Pull Request (https://github.com/youracct/vcert-python/pull/new/your-branch-name)NOTE: While developing with vcert-python, it is helpful if you are using a virtualenv to
install the vcert-python library from source in development mode withpip install --editable.
Seehttps://packaging.python.org/guides/installing-using-pip-and-virtual-environments/Version HistoryCheck version history hereLicenseCopyright © Venafi, Inc. All rights reserved.VCert is licensed under the Apache License, Version 2.0. SeeLICENSEfor the full license text.Please direct questions/comments toopensource@venafi.com.