To avoid using root, you could create a dedicated rsync user, say rsync, on both hosts, and add file ACLs to give it read/write permissions:
# Primary: make source files readable
setfacl -R -m u:rsync:rX,d:u:rsync:rX /etc/letsencrypt /etc/nginx
# Replica: make target files writeable
setfacl -R -m u:rsync:rwX,d:u:rsync:rwX /etc/letsencrypt /etc/nginx
This is better in principle than using root, since the rsync user can only do what you grant it permission to do, while root can do anything unless you effectively restrict it.
You might have to keep reapplying the ACLs now and then, though. The default (d:
) part of the ACLs ought to make them apply to new files that get created, but in my experience that tends to break over time. If the rsync job fails, you'll know.