So I finally figured out what this was. In my case it was caused by my Server Default certificate that was due to expire within 90 days (it was still valid).
Here is how I debugged it (this stuff is not documented anywhere from what I can find)
From powershell on one of the front end nodes run:
PS> Connect-ServiceFabricCluster
PS> Get-ServiceFabricClusterHealth
AggregatedHealthState : Warning
UnhealthyEvaluations :
Unhealthy nodes: 100% (3/3), MaxPercentUnhealthyNodes=0%.
Unhealthy node: NodeName='SKYPE19-FE-BD2.EXMAPLE.COM', AggregatedHealthState='Warning'.
Unhealthy event: SourceId='System.FabricNode', Property='Certificate_cluster', HealthState='Warning', ConsiderWarningAsError=false.
Unhealthy node: NodeName='SKYPE19-FE-BD3.EXMAPLE.COM', AggregatedHealthState='Warning'.
Unhealthy event: SourceId='System.FabricNode', Property='Certificate_cluster', HealthState='Warning', ConsiderWarningAsError=false.
Unhealthy node: NodeName='SKYPE19-FE-BD1.EXMAPLE.COM', AggregatedHealthState='Warning'.
Unhealthy event: SourceId='System.FabricNode', Property='Certificate_cluster', HealthState='Warning', ConsiderWarningAsError=false.
NodeHealthStates :
NodeName : SKYPE19-FE-BD2.EXMAPLE.COM
AggregatedHealthState : Warning
NodeName : SKYPE19-FE-BD3.EXMAPLE.COM
AggregatedHealthState : Warning
NodeName : SKYPE19-FE-BD1.EXMAPLE.COM
AggregatedHealthState : Warning
ApplicationHealthStates :
ApplicationName :
AggregatedHealthState : Ok
ApplicationName : fabric:/System
AggregatedHealthState : Ok
HealthEvents : None
To drill down into error run (you can target any of the nodes in the above output):
PS> Get-ServiceFabricNodeHealth -NodeName "SKYPE19-FE-BD2.EXMAPLE.COM"
NodeName : SKYPE19-FE-BD2.EXMAPLE.COM
AggregatedHealthState : Warning
UnhealthyEvaluations :
Unhealthy event: SourceId='System.FabricNode', Property='Certificate_cluster', HealthState='Warning', ConsiderWarningAsError=false.
HealthEvents :
SourceId : System.FabricNode
Property : Certificate_cluster
HealthState : Warning
SequenceNumber : 132555760970446011
SentAt : 20/01/2021 12:28:17 AM
ReceivedAt : 20/01/2021 12:30:17 AM
TTL : Infinite
Description : Certificate expiration: (2021-04-15 06:02:00.000, 81f707cef7d097bc1a0db3c32c213486f501129e)
RemoveWhenExpired : False
IsExpired : False
Transitions : Ok->Warning = 20/01/2021 12:30:17 AM, LastError = 1/01/0001 12:00:00 AM
SourceId : System.FM
Property : State
HealthState : Ok
SequenceNumber : 2
SentAt : 20/01/2021 12:29:13 AM
ReceivedAt : 20/01/2021 12:30:46 AM
TTL : Infinite
Description : Fabric node is up.
RemoveWhenExpired : False
IsExpired : False
Transitions : Warning->Ok = 20/01/2021 12:30:46 AM, LastError = 1/01/0001 12:00:00 AM
Simply replacing the certificate using https://learn.microsoft.com/en-us/powershell/module/skype/set-cscertificate?view=skype-ps ( or the gui if thats your thing) caused the warnings to clear-up.
Hopefully this helps someone else.