Fix VMWare Client Integration Plugin 6.0 on OSX

Let’s made it clear: get this plugin working on OSX can be a huge PITA.

I’ve read about it on forums, blogs, even on the VMware KB, without solving the issue (and often with arguable workarounds)

I’ve solved it after I realized that the issue was in the installation of the CA into the Firefox Trust Store, so I’ll try to explain what I’ve done.

My Setup

$ uname -a
Darwin turing 17.6.0 Darwin Kernel Version 17.6.0: Tue May  8 15:22:16 PDT 2018; root:xnu-4570.61.1~1/RELEASE_X86_64 x86_64 i386 MacBookAir7,2 Darwin

$ /Applications/Firefox.app/Contents/MacOS/firefox -v
Mozilla Firefox 52.9.0

Fix it!

Close any instances of Firefox.

Install VMWare Client Integration Plugin from DMG (VMware-ClientIntegrationPlugin-6.0.0-6823256.mac64.dmg)

Do not open Firefox for now!

Fix some paths:

sudo mkdir -pv /build/toolchain/mac32/openssl-1.0.1m/lib
sudo ln -s /Applications/VMware\ Client\ Integration\ Plug-in.app/Contents/Library/lib/libssl.1.0.2.dylib \
  /build/toolchain/mac32/openssl-1.0.1m/lib/
sudo ln -s  /Applications/VMware\ Client\ Integration\ Plug-in.app/Contents/Library/lib/libcrypto.1.0.2.dylib \
  /build/toolchain/mac32/openssl-1.0.1m/lib/

Run the vmware-csd-installer

sudo /Applications/VMware\ Client\ Integration\ Plug-in.app/Contents/Library/vmware-csd-installer --install

Fix certificates permissions

myuid=$(id -u)
mygid=$(id -g)
sudo chown ${myuid}:${mygid} /Applications/VMware Client Integration Plug-in.app/Contents/Library/data/ssl/*

Install nss package from brew and add its binary path to ${PATH}

brew install nss
echo 'export PATH="/usr/local/opt/nss/bin:$PATH"' >> ~/.bash_profile
source ~/.bash_profile

Install certificate into the Firefox Trust Store (both old, dbm, and new, sql)

cd ~/Library/Application\ Support/Firefox/Profiles/${profile.dir}
certutil -A -i "/Applications/VMware Client Integration Plug-in.app/Contents/Library/data/ssl/cert.pem" \
  -n vmware-localhost -d dbm:. -t TC
certutil -A -i "/Applications/VMware Client Integration Plug-in.app/Contents/Library/data/ssl/cert.pem" \
  -n vmware-localhost -d sql:. -t TC

Now it should work.