diff --git a/files/gitlab-cookbooks/letsencrypt/resources/certificate.rb b/files/gitlab-cookbooks/letsencrypt/resources/certificate.rb
index 82fb71ea9a1878b1ebdb98a08ef99bb7a49b423f_ZmlsZXMvZ2l0bGFiLWNvb2tib29rcy9sZXRzZW5jcnlwdC9yZXNvdXJjZXMvY2VydGlmaWNhdGUucmI=..822d616db7aa5ee79be11f67de6ef3f73abd1d74_ZmlsZXMvZ2l0bGFiLWNvb2tib29rcy9sZXRzZW5jcnlwdC9yZXNvdXJjZXMvY2VydGlmaWNhdGUucmI= 100644
--- a/files/gitlab-cookbooks/letsencrypt/resources/certificate.rb
+++ b/files/gitlab-cookbooks/letsencrypt/resources/certificate.rb
@@ -22,6 +22,7 @@
   helper = LetsEncryptHelper.new(node)
   contact_info = helper.contact
 
-  staging_key = OpenSSL::PKey::RSA.new ::File.read "#{new_resource.key}-staging"
-  staging_key_size = staging_key.to_text.split(/\n/).first[/[0-9]* bit/].split.first.to_i
+  if ::File.file?("#{new_resource.key}-staging")
+    staging_key = OpenSSL::PKey::RSA.new ::File.read "#{new_resource.key}-staging"
+    staging_key_size = staging_key.to_text.split(/\n/).first[/[0-9]* bit/].split.first.to_i
 
@@ -27,6 +28,14 @@
 
-  if new_resource.key_size.nil?
-    unless staging_key_size == node['acme']['key_size']
+    if new_resource.key_size.nil?
+      unless staging_key_size == node['acme']['key_size']
+        file "#{new_resource.key}-staging" do
+          action :delete
+        end
+        file "#{new_resource.crt}-staging" do
+          action :delete
+        end
+      end
+    elsif staging_key_size != new_resource.key_size
       file "#{new_resource.key}-staging" do
         action :delete
       end
@@ -34,13 +43,6 @@
         action :delete
       end
     end
-  elsif staging_key_size != new_resource.key_size
-    file "#{new_resource.key}-staging" do
-      action :delete
-    end
-    file "#{new_resource.crt}-staging" do
-      action :delete
-    end
   end
 
   acme_certificate 'staging' do
@@ -64,6 +66,7 @@
     end
   end
 
-  production_key = OpenSSL::PKey::RSA.new ::File.read new_resource.key
-  production_key_size = production_key.to_text.split(/\n/).first[/[0-9]* bit/].split.first.to_i
+  if ::File.file?(new_resource.key)
+    production_key = OpenSSL::PKey::RSA.new ::File.read new_resource.key
+    production_key_size = production_key.to_text.split(/\n/).first[/[0-9]* bit/].split.first.to_i
 
@@ -69,6 +72,14 @@
 
-  if new_resource.key_size.nil?
-    unless production_key_size == node['acme']['key_size']
+    if new_resource.key_size.nil?
+      unless production_key_size == node['acme']['key_size']
+        file new_resource.key do
+          action :delete
+        end
+        file new_resource.crt do
+          action :delete
+        end
+      end
+    elsif production_key_size != new_resource.key_size
       file new_resource.key do
         action :delete
       end
@@ -76,13 +87,6 @@
         action :delete
       end
     end
-  elsif production_key_size != new_resource.key_size
-    file new_resource.key do
-      action :delete
-    end
-    file new_resource.crt do
-      action :delete
-    end
   end
 
   acme_certificate 'production' do