code: public ApnsServiceBuilder withCert(KeyStore keyStore, String password, String alias)
              throws InvalidSSLConfig {
          assertPasswordNotEmpty(password);
          return withSSLContext(new SSLContextBuilder()
                  .withAlgorithm(KEY_ALGORITHM)
                  .withCertificateKeyStore(keyStore, password, alias)
                  .withDefaultTrustKeyStore()
                  .build());
      }
docs: Specify the certificate store used to connect to Apple APNS
  servers.  This relies on the stream of keystore (*.p12 | *.jks)
  containing the keys and certificates, along with the given
  password and alias.
  
  The keystore can be either PKCS12 or JKS and the keystore
  needs to be encrypted using the SunX509 algorithm.
  
  This library does not support password-less p12 certificates, due to a
  Oracle Java library <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6415637">
  Bug 6415637</a>.  There are three workarounds: use a password-protected
  certificate, use a different boot Java SDK implementation, or constract
  the `SSLContext` yourself!  Needless to say, the password-protected
  certificate is most recommended option.
  
  @param keyStore  the keystore
  @param password  the password of the keystore
  @param alias     the alias identifing the key to be used
  @return  this
  @throws InvalidSSLConfig if stream is an invalid Keystore,
  the password is invalid or the alias is not found