Hi Alex
I am not sure what settings you have tried but based on your requirements you should try the following
In the Certification Assignments tab set the due date as fixed completion date of 31/12/2019 for all users (this can be done easily if users are assigned by audience)
In the Certification tab choose fixed expiry date - this will be the due date as set above
- Use fixed expiry date: This option causes the expiry time to be calculated based on the specified assignment due date (if available, otherwise the first completion date), and subsequent completion expiry dates will be calculated using that same base date, regardless of whether they are late or early. The active period is repeatedly added to the base date until the first future date is discovered. Over the span of several recertifications, this option will prevent the expiry date from drifting forwards or backwards.
Set the Certification active period to 1 year and the active period and rectification window to the same value depending on how long you want to let users re certify before the expiry (as small as possible probably)
There is some more detailed explanation on here a bit complex but think these options sound right. There is always the certification completion editor that can be used to adjust things if this isn't quite right.
Regards
Craig