diff --git a/tasks/buildcerts.yml b/tasks/buildcerts.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d2e64504181ea88b4929190b1fe1107e10877aec
--- /dev/null
+++ b/tasks/buildcerts.yml
@@ -0,0 +1,9 @@
+---
+# file: roles/haproxy/tasks/buildcerts.yml
+
+- name: "Create PEM file for HaProxy"
+  assemble:
+    src='/etc/letsencrypt/live/{{ item.domain }}'
+    dest='/etc/haproxy/certs/{{ item.domain }}.pem'
+    regexp='(fullchain)|(privkey)\.pem'
+  with_items: '{{ proxy_certificates_letsencrypt|default([]) }}'
diff --git a/tasks/letsencrypt.yml b/tasks/letsencrypt.yml
deleted file mode 100644
index cb04e593c787ab680d84ae1568e369b51cc9e04d..0000000000000000000000000000000000000000
--- a/tasks/letsencrypt.yml
+++ /dev/null
@@ -1,26 +0,0 @@
----
-# file: roles/haproxy/tasks/letsencrypt.yml
-
-- set_fact: filename='/etc/letsencrypt/live/{{ item.domain }}/cert.pem'
-
-- name: "Check LetsEncrypt Requirement"
-  shell: ls {{ filename }}
-  register: cert_available
-  failed_when: false
-
-- block:
-
-  - name: "Stop HAProxy"
-    service:
-      name='haproxy'
-      state='stopped'
-
-  - name: "Install New Cert"
-    shell: /opt/letsencrypt/letsencrypt-auto certonly -d {{ item.domain }} -d www.{{ item.domain }} --standalone --text --email {{ apache_server_admin|default('admin@paragon-es.de') }} --agree-tos --redirect
-
-  - name: "Start HAProxy"
-    service:
-      name='haproxy'
-      state='started'
-
-  when: cert_available is defined and cert_available.stdout != filename
diff --git a/tasks/main.yml b/tasks/main.yml
index 5c9280e1bfcf4a20c1bc5a5dca0812bc96ebb792..5da7495e9ab491843c2588b8e231210035f130a9 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -2,18 +2,17 @@
 # file: roles/haproxy/tasks/main.yml
 
 - block:
-  - name: "LetsEncrypt Certificates"
-    include: letsencrypt.yml
+  - name: "Install Certs"
+    include: '../../letsencrypt/tasks/cert.yml'
     with_items: '{{ proxy_certificates_letsencrypt|default([]) }}'
 
   - name: "Renew Existing Cert"
     include: '../../letsencrypt/tasks/renew.yml'
 
-  - name: "Create PEM file for HaProxy"
-    shell: cat /etc/letsencrypt/live/{{ item.domain }}/fullchain.pem /etc/letsencrypt/live/{{ item.domain }}/privkey.pem > /etc/haproxy/certs/{{ item.domain }}.pem
-    with_items: '{{ proxy_certificates_letsencrypt|default([]) }}'
-    notify: "Proxy | Restart HAProxy"
+  - name: "Build HaCerts"
+    include: 'buildcerts.yml'
 
+  tags: Certs
   when: '"letsencrypt" not in excluded_roles'
 
 - block:
diff --git a/templates/letsencrypt.ini b/templates/letsencrypt.ini
new file mode 120000
index 0000000000000000000000000000000000000000..fc27efd4b836f3bd2cce599936b7981394a1e94d
--- /dev/null
+++ b/templates/letsencrypt.ini
@@ -0,0 +1 @@
+../../letsencrypt/templates/letsencrypt.ini
\ No newline at end of file