diff --git a/node/src/chain_spec/gdev.rs b/node/src/chain_spec/gdev.rs
index 133dddd494a7aa97b0e2b13224941c3a6fccbc84..31dc65ae8b462962b7ae6e5bc1b0c3ed05a9749a 100644
--- a/node/src/chain_spec/gdev.rs
+++ b/node/src/chain_spec/gdev.rs
@@ -140,6 +140,7 @@ fn devnet_genesis(
                 .collect(),
         },
         strong_cert: StrongCertConfig {
+            apply_cert_period_at_genesis: false,
             certs_by_issuer: clique_wot(
                 initial_identities.len(),
                 gdev_runtime::parameters::ValidityPeriod::get(),
diff --git a/node/src/chain_spec/gtest.rs b/node/src/chain_spec/gtest.rs
index 8035544744cf3fd3c9d1c6302b752b1bf3a042e5..f601d22212249782ded7ef0082876424559cfb28 100644
--- a/node/src/chain_spec/gtest.rs
+++ b/node/src/chain_spec/gtest.rs
@@ -128,6 +128,7 @@ fn devnet_genesis(
                 .collect(),
         },
         strong_cert: StrongCertConfig {
+            apply_cert_period_at_genesis: false,
             certs_by_issuer: clique_wot(
                 initial_identities.len(),
                 gtest_runtime::parameters::ValidityPeriod::get(),
@@ -333,6 +334,7 @@ fn testnet_genesis(
                 .collect(),
         },
         strong_cert: StrongCertConfig {
+            apply_cert_period_at_genesis: false,
             certs_by_issuer: clique_wot(
                 initial_identities.len(),
                 gtest_runtime::parameters::ValidityPeriod::get(),
diff --git a/pallets/certification/src/lib.rs b/pallets/certification/src/lib.rs
index 3462440a0f4d55f6ba3641a9d9f866d920608548..2636ad7295711a055475ad413ec1119ab48b0133 100644
--- a/pallets/certification/src/lib.rs
+++ b/pallets/certification/src/lib.rs
@@ -39,6 +39,7 @@ pub mod pallet {
     use super::*;
     use frame_support::pallet_prelude::*;
     use frame_system::pallet_prelude::*;
+    use sp_runtime::traits::Saturating;
     use sp_std::collections::btree_map::BTreeMap;
 
     /// The current storage version.
@@ -89,6 +90,7 @@ pub mod pallet {
 
     #[pallet::genesis_config]
     pub struct GenesisConfig<T: Config<I>, I: 'static = ()> {
+        pub apply_cert_period_at_genesis: bool,
         pub certs_by_issuer: BTreeMap<T::IdtyIndex, BTreeMap<T::IdtyIndex, T::BlockNumber>>,
     }
 
@@ -96,6 +98,7 @@ pub mod pallet {
     impl<T: Config<I>, I: 'static> Default for GenesisConfig<T, I> {
         fn default() -> Self {
             Self {
+                apply_cert_period_at_genesis: false,
                 certs_by_issuer: Default::default(),
             }
         }
@@ -152,13 +155,14 @@ pub mod pallet {
                         .or_default()
                         .push((*issuer, *receiver));
 
-                    use sp_runtime::traits::Saturating as _;
-                    let issuer_next_issuable_on = removable_on
-                        .saturating_add(T::CertPeriod::get())
-                        .saturating_sub(T::ValidityPeriod::get());
-                    if let Some(cert_meta) = cert_meta_by_issuer.get_mut(issuer) {
-                        if cert_meta.next_issuable_on < issuer_next_issuable_on {
-                            cert_meta.next_issuable_on = issuer_next_issuable_on;
+                    if self.apply_cert_period_at_genesis {
+                        let issuer_next_issuable_on = removable_on
+                            .saturating_add(T::CertPeriod::get())
+                            .saturating_sub(T::ValidityPeriod::get());
+                        if let Some(cert_meta) = cert_meta_by_issuer.get_mut(issuer) {
+                            if cert_meta.next_issuable_on < issuer_next_issuable_on {
+                                cert_meta.next_issuable_on = issuer_next_issuable_on;
+                            }
                         }
                     }
                     let renewable_on = removable_on.saturating_sub(
diff --git a/pallets/certification/src/tests.rs b/pallets/certification/src/tests.rs
index 7c50f5768fdf20f3e0107812f7d6e42ceba85275..9c870412e473d95a369df1a1a293385276f60bf5 100644
--- a/pallets/certification/src/tests.rs
+++ b/pallets/certification/src/tests.rs
@@ -25,6 +25,7 @@ use sp_std::collections::btree_map::BTreeMap;
 #[test]
 fn test_must_receive_cert_before_can_issue() {
     new_test_ext(DefaultCertificationConfig {
+		apply_cert_period_at_genesis: true,
         certs_by_issuer: BTreeMap::new(),
     })
     .execute_with(|| {
@@ -38,6 +39,7 @@ fn test_must_receive_cert_before_can_issue() {
 #[test]
 fn test_genesis_build() {
     new_test_ext(DefaultCertificationConfig {
+		apply_cert_period_at_genesis: true,
         certs_by_issuer: btreemap![
             0 => btreemap![
                 1 => 10,
@@ -111,6 +113,7 @@ fn test_genesis_build() {
 #[test]
 fn test_cert_period() {
     new_test_ext(DefaultCertificationConfig {
+		apply_cert_period_at_genesis: true,
         certs_by_issuer: btreemap![0 => btreemap![1 => 10]],
     })
     .execute_with(|| {
@@ -133,6 +136,7 @@ fn test_cert_period() {
 #[test]
 fn test_renewable_period() {
     new_test_ext(DefaultCertificationConfig {
+		apply_cert_period_at_genesis: true,
         certs_by_issuer: btreemap![0 => btreemap![1 => 10]],
     })
     .execute_with(|| {