# Running Signed Modules between 7.7.7 and 7.7.8

**URL:** <https://forum.inductiveautomation.com/t/running-signed-modules-between-7-7-7-and-7-7-8/14896>\
**Category:** Module Development\
**Tags:** ignition77\
**Created:** [July 26, 2017, 9:54pm UTC](https://forum.inductiveautomation.com/t/running-signed-modules-between-7-7-7-and-7-7-8/14896 "2017-07-26T21:54:20Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![UdayBaskar.Guntupall](https://avatars.discourse-cdn.com/v4/letter/u/bbce88/32.png) [@UdayBaskar.Guntupall](https://forum.inductiveautomation.com/u/UdayBaskar.Guntupall)\
**Post date:** [July 26, 2017, 9:54pm UTC](https://forum.inductiveautomation.com/t/running-signed-modules-between-7-7-7-and-7-7-8/14896/1 "2017-07-26T21:54:20Z")

</div>

We have been running Ignition 7.7.7 in production and testing 7.7.8.  
We use modules developed using SDK, earlier we used to upload unsigned modules to Inductive’s website get them signed and now we are using module signer tool to sign modules.  
I tried signing the module using Self-Generated certificate for testing, i observed that i could load this module to 7.7.8 but not to 7.7.7. I ran into below errors while trying to upload. Any suggestions would be appreciated.

* * *

com.inductiveautomation.ignition.gateway.modules.ModuleVerificationException: Module signature not present.  
at com.inductiveautomation.ignition.gateway.modules.ModuleManagerImpl.verifyModuleSignatures(ModuleManagerImpl.java:1627)  
at com.inductiveautomation.ignition.gateway.modules.ModuleManagerImpl.loadModule(ModuleManagerImpl.java:1509)  
at com.inductiveautomation.ignition.gateway.modules.ModuleManagerImpl$4.call(ModuleManagerImpl.java:954)  
at com.inductiveautomation.ignition.gateway.modules.ModuleManagerImpl.executeModuleOperation(ModuleManagerImpl.java:1095)  
at com.inductiveautomation.ignition.gateway.modules.ModuleManagerImpl.installModuleInternal(ModuleManagerImpl.java:936)  
at com.inductiveautomation.ignition.gateway.modules.ModuleManagerImpl.access$1500(ModuleManagerImpl.java:122)  
at com.inductiveautomation.ignition.gateway.modules.ModuleManagerImpl$InstallCommand.execute(ModuleManagerImpl.java:1825)  
at com.inductiveautomation.ignition.gateway.modules.ModuleManagerImpl$Receiver.receiveCall(ModuleManagerImpl.java:1766)  
at com.inductiveautomation.ignition.gateway.redundancy.QueueableMessageReceiver.receiveCall(QueueableMessageReceiver.java:45)  
at com.inductiveautomation.ignition.gateway.redundancy.RedundancyManagerImpl.dispatchMessage(RedundancyManagerImpl.java:658)  
at com.inductiveautomation.ignition.gateway.redundancy.RedundancyManagerImpl$ExecuteTask.run(RedundancyManagerImpl.java:678)  
at com.inductiveautomation.ignition.common.execution.impl.BasicExecutionEngine$ThrowableCatchingRunnable.run(BasicExecutionEngine.java:537)  
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)  
at java.util.concurrent.FutureTask.run(FutureTask.java:266)  
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)  
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)  
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)  
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)  
at java.lang.Thread.run(Thread.java:745)

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [July 26, 2017, 9:59pm UTC](https://forum.inductiveautomation.com/t/running-signed-modules-between-7-7-7-and-7-7-8/14896/2 "2017-07-26T21:59:20Z")

</div>

Support for self-signed modules wasn’t added until 7.7.8. They won’t work in prior versions.

---

<div class="post-metadata">

**Author:** ![UdayBaskar.Guntupall](https://avatars.discourse-cdn.com/v4/letter/u/bbce88/32.png) [@UdayBaskar.Guntupall](https://forum.inductiveautomation.com/u/UdayBaskar.Guntupall)\
**Post date:** [July 26, 2017, 10:02pm UTC](https://forum.inductiveautomation.com/t/running-signed-modules-between-7-7-7-and-7-7-8/14896/3 "2017-07-26T22:02:16Z")

</div>

Thanks for clarification, may i ask about the impact if we run un-signed modules?

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [July 26, 2017, 10:03pm UTC](https://forum.inductiveautomation.com/t/running-signed-modules-between-7-7-7-and-7-7-8/14896/4 "2017-07-26T22:03:25Z")

</div>

Unsigned modules can only be run by setting a flag that allows _any_ unsigned module to be installed. If that doesn’t worry you then it’s not a problem.

---

<div class="post-metadata">

**Author:** ![pascal](https://avatars.discourse-cdn.com/v4/letter/p/e9a140/32.png) [@pascal](https://forum.inductiveautomation.com/u/pascal)\
**Post date:** [July 27, 2017, 6:37am UTC](https://forum.inductiveautomation.com/t/running-signed-modules-between-7-7-7-and-7-7-8/14896/5 "2017-07-27T06:37:25Z")

</div>

I had to re-compile recently a module that was developped for our company by another company long ago. However I don’t understand how it has to be signed (i want to self-sign it) so I added the line “wrapper.java.additional.10=-Dignition.allowunsignedmodules=true” in the ignition.conf as mentionned here : [Allowing unsigned modules](http://forum.inductiveautomation.com/t/allowing-unsigned-modules/14304/2)  
My module is in Trial mode, does this mean I have to sign it for it to be Activated ?

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [July 27, 2017, 1:02pm UTC](https://forum.inductiveautomation.com/t/running-signed-modules-between-7-7-7-and-7-7-8/14896/6 "2017-07-27T13:02:21Z")

</div>

No, that means you need to mark your module is being free. If you’re on a version that accepts unsigned modules and self-signed modules, then you need to override `isFreeModule()` in your gateway module hook to indicate the module is free.

---

<div class="post-metadata">

**Author:** ![UdayBaskar.Guntupall](https://avatars.discourse-cdn.com/v4/letter/u/bbce88/32.png) [@UdayBaskar.Guntupall](https://forum.inductiveautomation.com/u/UdayBaskar.Guntupall)\
**Post date:** [July 27, 2017, 4:44pm UTC](https://forum.inductiveautomation.com/t/running-signed-modules-between-7-7-7-and-7-7-8/14896/7 "2017-07-27T16:44:26Z")

</div>

Will it cause any issues if we don’t override isFreeModule() method in 7.7.8 or 7.9?

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [July 27, 2017, 4:52pm UTC](https://forum.inductiveautomation.com/t/running-signed-modules-between-7-7-7-and-7-7-8/14896/8 "2017-07-27T16:52:51Z")

</div>

Your module will appear to be in trial mode and your gateway will have the banner that shows up when one or more modules is not activated, but unless you actually implement logic in your module that acts on the license state there will be no other effects.
