Symptoms:
openssl verify -purpose sslclient -CAfile /etc/vmware/ssl/castore.pem /etc/vmware/ssl/rui.crt
error 20 at 0 depth: unable to get local issuer certificate
VVOL shows syncError:
esxcli storage vvol vasaprovider list
vasa_provier_uri_or_ip
VP Name: vp_name_uri_or_ip
URL: https://vasa_provier_uri_or_ip:8084
Status: syncError
Arrays:
Array Id: com.xxxxxxxxxx:########-####-####-####-########e4ec
Is Active: true
Priority: 200
YYYY-MM-DDTHH:MM:SS info vvold[2229026] [Originator@6876 sub=Default] VasaSession::GetEndPoint: with url https://<vasa_provier_uri_or_ip>:8084
YYYY-MM-DDTHH:MM:SS
warning vvold[2229026] [Originator@6876 sub=Default] status code=400,status message=Bad Request
YYYY-MM-DDTHH:MM:SS
warning vvold[2229026] [Originator@6876 sub=Default] VasaSession::DoSetContext: Empty VP URL for VP (vasa_provier_uri_or_ip)!
info vvold[2229026] [Originator@6876 sub=Default] Initialize: Failed to establish connection https://vasa_provier_uri_or_ip:8084YYYY-MM-DDTHH:MM:SS
error vvold[2229026] [Originator@6876 sub=Default] Initialize: Unable to init session to VP vasa_provier_uri_or_ip state: 0YYYY-MM-DDTHH:MM:SS
info vvold[2229028] [Originator@6876 sub=Default] VasaSession::GetEndPoint: with url https://vasa_provier_uri_or_ip:8084YYYY-MM-DDTHH:MM:SS
warning vvold[2229028] [Originator@6876 sub=Default] status code=400,status message=Bad RequestYYYY-MM-DDTHH:MM:SS
The issue occurs when the ESXi certificate does not have a correct key usage. The ESXi client certificate does not have Client Authentication and causes certificate validation to fail at the VASA Provider. Because ESXi is acting as a client to the VASA Provider, Enhanced Key Usage (EKU) must contain Client Authentication
openssl s_client -showcerts -cert /etc/vmware/ssl/rui.crt -key /etc/vmware/ssl/rui.key -CAfile /etc/vmware/ssl/castore.pem -connect <VP_IP_FQDN>:PORT
openssl verify -purpose sslclient -CAfile /etc/vmware/ssl/castore.pem /etc/vmware/ssl/rui.crt
Expected result:
/etc/vmware/ssl/rui.crt: OK