Edge Encryption proxy error "failed signature validation" or NullPointerException From getAsJsonPrimitive and verifyConfigurationSignatures


You to start the Edge Encryption Proxy and you see an error similar to this in the logfile $proxy_installation_location/logs/edgeencryption.log:

2017-02-03 12:06:44,749 ERROR Error occurred during proxy startup: Failed get edge encryption configuration from the ServiceNow instance: Encryption configuration for field '"change_request"."short_description"' failed signature validation. Contact support to restore the encryption configurations.

Or the following NullPointerException which will prevent the proxy from starting:

2017-08-19 09:12:45,327 ERROR Error occured during proxy startup


at com.snc.edgeencryption.util.JsonUtil.getAsJsonPrimitive(JsonUtil.java:44)

at com.snc.edgeencryption.encryption.EncryptedFieldsManager.verifyConfigurationSignatures(EncryptedFieldsManager.java:221)

at com.snc.edgeencryption.encryption.EncryptedFieldsManager.updateEncryptedFields(EncryptedFieldsManager.java:152)

at com.snc.edgeencryption.encryption.EncryptedFieldsManager.readEncryptedFields(EncryptedFieldsManager.java:96)

at com.snc.edgeencryption.CloudEdgeConfigClient.startupPing(CloudEdgeConfigClient.java:202)

at com.snc.edgeencryption.CloudEdgeConfigClient.start(CloudEdgeConfigClient.java:345)

at com.snc.edgeencryption.CloudEdge.start(CloudEdge.java:151)

at com.snc.edgeencryption.Main.main(Main.java:30)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:240)

at java.lang.Thread.run(Thread.java:748)



See the mentioned errors in the edgeencryption.log file.



The digitial signature check between the proxy and the instance fails. 


About the digital signature:

The proxy will look for and validate the signature for all of the Edge Encryption Configurations and Rules, and this must be consistent for the proxy to trust it. 

If there is some untrusted configuration in the proxy it will lock itself. It will run with what it has (encryptions will still be done), but any new rule or configuration will not be applied. The proxy keeps a local copy of the configurations (encryptionconfiguration.json and rules folder).  If there is a validation problem, the trust is broken and the proxy only trusts its local copies until recovery.

Signatures are being validated when loading configurations; deletions are also checked. All proxies must have the same RSA key to perform the validation.

The signature is one of the keys that is added to the keystore.jceks, e.g. it is added using this keytool command:

/java/jre/bin/keytool –genkey -alias rsa_key -keyalg rsa –keystore keystore/keystore.jceks -storetype jceks -storepass changeme


Edge proxy uses asymmetric keys to ‘sign’ configurations, rules, etc.

All base system rules are signed with a ServiceNow private key. The corresponding public key is in the keystore that ships with the edge proxy.  Proxies need the ServiceNow public key.

All user-generated rules and configurations should be signed with a different asymmetric key present in their keystore.

The signature key setup is done in the edgeencryption.properties file:

  • edgeencryption.proxy.signature.keystore.path = keystore/keystore.jceks
  • edgeencryption.proxy.signature.keystore.password = <password>
  • edgeencryption.proxy.signature.keystore.keyalias = rsa_key


  1. Edit the $proxy_installation_location/conf/edgeencryption.properties file, adding these two properties:
    • edgeencryption.proxy.skip.config.validate = true
    • edgeencryption.proxy.signature.verify = false

      This will start the proxy and force it to ignore the signature mismatches.

  2. Now in the case of the "failed signature validation" error log back into the instance via the proxy URL and modify the configuration or configurations that show in the error from the log.  Edit in the form editor to fix the signatures.  In this example this is the error:
    • 2017-02-03 12:06:44,749 ERROR Error occured during proxy startup: Failed get edge encryption configuration from the ServiceNow instance: Encryption configuration for field '"change_request"."short_description"' failed signature validation. Contact support to restore the encryption configurations.

  3. To fix the "failed signature validation" error, navigate to Edge Encryption Configuration > Encryption Configurations > All. Select the Configuration for Table = change request and Column = short_description. You can correct this simply by checking or unchecking the Active box, saving, then putting it back to the original value and saving it again. This will synchronize the signature between the instance and the proxy.

  4. Comment out the two added properties from step 1. and restart the proxy. The proxy should start without issue since now the signature issue has been resolved.

Article Information

Last Updated:2017-08-21 11:11:08