diff --git a/roles/arch_boxes_sync/files/arch-boxes-sync.sh b/roles/arch_boxes_sync/files/arch-boxes-sync.sh
index a81d458f5f830e1e9f9f7fee7ec62c214b7f746a..8dc5ccc5a68f1b5a32a02835b920dc98d804d5f0 100755
--- a/roles/arch_boxes_sync/files/arch-boxes-sync.sh
+++ b/roles/arch_boxes_sync/files/arch-boxes-sync.sh
@@ -34,8 +34,17 @@ mv output/* "${LATEST_RELEASE_TAG}"
 
 for FILE in "${LATEST_RELEASE_TAG}"/*; do
   if [[ $FILE == *${LATEST_RELEASE_TAG:1}* ]]; then
-    FILE="${FILE##*/}"
-    ln -s "${FILE}" "${LATEST_RELEASE_TAG}/${FILE//-${LATEST_RELEASE_TAG:1}}"
+    DEST="${FILE//-${LATEST_RELEASE_TAG:1}}"
+    if [[ $FILE =~ .*\.SHA256$ ]]; then
+      sed "s/-${LATEST_RELEASE_TAG:1}//" "${FILE}" > "${DEST}"
+      touch --no-create --reference="${FILE}" "${DEST}"
+    # Don't create a symlink for the .SHA256.sig file, as we break the signature by fixing the checksum file.
+    elif [[ $FILE =~ .*\.SHA256.sig$ ]]; then
+      continue
+    else
+      FILE="${FILE##*/}"
+      ln -s "${FILE}" "${DEST}"
+    fi
   fi
 done