Skip to content

Instantly share code, notes, and snippets.

@embano1
Last active May 3, 2021 09:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save embano1/96b78a77c37c33226a6df7442bf23788 to your computer and use it in GitHub Desktop.
Save embano1/96b78a77c37c33226a6df7442bf23788 to your computer and use it in GitHub Desktop.
Extract self-signed PEM certificate from vCenter

Make CA Certificate available to a pod

Create a ConfigMap:

$ kubectl create cm ca-cert --from-file ca-cert.pem

Example how to use custom CA cert in govmomi:

  // make this configurable
	const file = "/etc/ssl/certs/ca-certificates.crt:/etc/vmware-event-router/ssl/ca-cert.pem"
  
	soapClient := soap.NewClient(u, *insecureFlag)
	err = soapClient.SetRootCAs(file)
	if err != nil {
		panic(err)
	}

	vimClient, err := vim25.NewClient(ctx, soapClient)
	if err != nil {
		return nil, err
	}

	c := &govmomi.Client{
		Client:         vimClient,
		SessionManager: session.NewManager(vimClient),
	}

	err = c.Login(ctx, u.User)
	if err != nil {
		panic(err)
	}

Use ConfigMap in a pod:

apiVersion: v1
kind: Pod
metadata:
  name: events-example
spec:
  containers:
    - image: ko://github.com/vmware/govmomi/examples/events
      name: events-example
      args:
        - "-f" # follow
        - "-b" # since 1h
        - "1h"
      env:
        - name: "GOVMOMI_USERNAME"
          value: "administrator@vsphere.local"
        - name: "GOVMOMI_PASSWORD"
          value: "Admin!23"
        - name: "GOVMOMI_URL"
          value: "https://sc2-10-184-165-188.eng.vmware.com"
      volumeMounts:
        - name: ca-cert
          mountPath: /etc/vmware-event-router/ssl
  volumes:
    - name: ca-cert
      configMap:
        name: ca-cert

Download from certificate via highlighted link in the screenshot, then

$ openssl x509 -inform der -in ~/Downloads/ca.cer -out ca-cert.pem

Verify with:

# use hostname used to retrieve the cert
$ curl -i -vv --cacert ca-cert.pem https://sc2-10-184-165-188.eng.vmware.com
@embano1
Copy link
Author

embano1 commented May 2, 2021

screenshot

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment