Dieses Open-Source-Projekt wird von der Community unterstützt. Um ein Problem zu melden oder eine Idee zu teilen, verwenden Sie „Probleme“ . Wenn Sie einen Vorschlag zur Behebung des Problems haben, geben Sie bitte auch diese Details an. Darüber hinaus können Sie Pull Requests verwenden, um tatsächliche Fehlerbehebungen oder vorgeschlagene Verbesserungen beizutragen. Wir freuen uns über alle Beiträge. Haben Sie Fragen oder möchten Sie etwas mit unserem Team besprechen? Begleiten Sie uns auf Slack !
VCert ist eine Go-Bibliothek, ein SDK und ein Befehlszeilendienstprogramm, das die Schlüsselgenerierung und Registrierung von Maschinenidentitäten (auch bekannt als SSL/TLS-Zertifikate und -Schlüssel) vereinfacht, die den Sicherheitsrichtlinien des Unternehmens entsprechen, indem die Venafi Trust Protection Platform oder Venafi Control Plane verwendet wird oder Venafi Firefly.
Informationen zu den ersten Schritten mit dem Befehlszeilendienstprogramm finden Sie unter VCert CLI für Venafi Trust Protection Platform oder VCert CLI für Venafi Control Plane oder VCert CLI für Venafi Firefly.
VCert-Versionen werden mit der neuesten Version der Trust Protection Platform getestet. Die allgemeine Funktionalität der neuesten VCert-Version sollte mit Trust Protection Platform 17.3 oder höher kompatibel sein. Benutzerdefinierte Felder und Instanzverfolgung erfordern TPP 18.2 oder höher und die Token-Authentifizierung erfordert TPP 20.1 oder höher.
Konfigurieren Sie Ihre Go-Umgebung gemäß https://golang.org/doc/install.
Stellen Sie sicher, dass die Umgebungsvariable GOPATH richtig eingestellt ist
Laden Sie den Quellcode herunter:
go get github.com/Venafi/vcert/v5
oder vor Go 1.13
git clone https://github.com/Venafi/vcert.git $GOPATH /src/github.com/Venafi/vcert/v5
Gehen Sie auf 1.11 mit aktivierten Go-Modulen oder gehen Sie auf 1.13 und höher. Stellen Sie sicher, dass Sie außerhalb von $GOPATH/src
klonen
git clone https://github.com/Venafi/vcert.git
Erstellen Sie die Befehlszeilen-Dienstprogramme für Linux, macOS und Windows:
make build
Codebeispiele zur programmgesteuerten Verwendung finden Sie in den Dateien im Beispielordner.
main.go
Datei die folgenden Importdeklarationen vor: import (
"github.com/Venafi/vcert/v5"
"github.com/Venafi/vcert/v5/pkg/certificate"
"github.com/Venafi/vcert/v5/pkg/endpoint"
)
&vcert.Config
, das die Venafi-Verbindungsdetails angibt. Lösungen sind in der Regel darauf ausgelegt, diese Details aus einem Geheimspeicher, einer INI-Datei, Umgebungsvariablen oder Befehlszeilenparametern abzurufen.NewClient
-Methode der vcert-Klasse mit dem Konfigurationsobjekt aufrufen.&certificate.Request
.GenerateRequest
-Methode des Clients aufrufen.RequestCertificate
-Methode des Clients übergeben.RetrieveCertificate
-Methode des Clients abzurufen.vcert.Config
-Methode NewListener
mit der Liste der Domänen als Argumente auf. Zum Beispiel ("test.example.com:8443", "example.com")
net.Listener
als Argument für den integrierten http.Serve
oder andere https-Server.Die Beispiele befinden sich in einem Zustand, in dem Sie sie mit den folgenden Befehlen erstellen/ausführen können (nachdem Sie die später besprochenen Umgebungsvariablen festgelegt haben):
go build -o cli ./example
go test -v ./example -run TestRequestCertificate
View
, Read
, Write
, Create
, Revoke
(für die Widerrufsaktion) und Private Key Read
(für die Abholaktion, wenn CSR vom Dienst generiert wird).Die Anforderung, dass die CA-Vorlage durch Richtlinien zugewiesen werden muss, folgt einer langjährigen Best Practice von Venafi, die auch unserem Designziel entsprach, den Zertifikatsanforderungsprozess für VCert-Benutzer einfach zu halten. Wenn Sie die Möglichkeit benötigen, die CA-Vorlage mit der Anfrage anzugeben, können Sie die TPP-REST-APIs verwenden. Bitte beachten Sie jedoch, dass dies im Widerspruch zu den Empfehlungen von Venafi steht.
Unit-Tests:
make test
Integrationstests für Trust Protection Platform und Venafi Control Plane erfordern Zugriff auf diese Produkte. Umgebungsvariablen werden verwendet, um erforderliche Einstellungen einschließlich Anmeldeinformationen anzugeben. Der Venafi Control Plane API-Schlüssel und die Zonenwertfragmente (z. B. Application Name
Issuing Template API Alias
) sind in der Weboberfläche leicht verfügbar.
export TPP_URL=https://tpp.venafi.example/vedsdk
export TPP_USER=tpp-user
export TPP_PASSWORD=tpp-password
export TPP_ZONE= ' somesuggested_policy '
export TPP_ZONE_RESTRICTED= ' somelocked_policy '
export TPP_ZONE_ECDSA= ' someecdsa_policy '
make tpp_test
export CLOUD_URL=https://api.venafi.cloud/v1
export CLOUD_APIKEY=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
export CLOUD_ZONE= ' My ApplicationPermissive CIT '
export CLOUD_ZONE_RESTRICTED= ' Your ApplicationRestrictive CIT '
make cloud_test
Befehlszeilen-Dienstprogrammtests nutzen Cucumber- und Aruba-Funktionsdateien.
So führen Sie Tests für alle Funktionen parallel aus:
make cucumber
Um Tests nur für eine bestimmte Funktion auszuführen:
make cucumber FEATURE=./features/basic/version.feature
Verfügbare Funktionen sind:
basic
config
enroll
format
gencsr
renew
revoke
Bei der Ausführung werden diese Tests in ihrem eigenen Docker-Container mit der Ruby-Version von Cucumber ausgeführt.
Der abgeschlossene Testlauf meldet die Anzahl der Testszenarien und -schritte, die bestanden, fehlgeschlagen oder übersprungen wurden.
Ausführliche Erklärungen zum Playbook und seinem Aufbau finden Sie hier: Readme Playbook
Venafi freut sich über Beiträge der Entwickler-Community.
git clone [email protected]:youracct/vcert.git
git checkout -b your-branch-name
git commit -am ' Added some cool functionality '
git push origin your-branch-name
Copyright © Venafi, Inc. Alle Rechte vorbehalten.
VCert ist unter der Apache-Lizenz, Version 2.0, lizenziert. Den vollständigen Lizenztext finden Sie unter LIZENZ.
Bitte richten Sie Fragen/Kommentare an [email protected].