@@ -67,15 +67,18 @@ func (s *Systray) start() {
67
67
mGenCerts := systray .AddMenuItem ("Generate and Install HTTPS certificates" , "HTTPS Certs" )
68
68
mRemoveCerts := systray .AddMenuItem ("Remove HTTPS certificates" , "" )
69
69
mCertsInfo := systray .AddMenuItem ("Show HTTPS certificates info" , "" )
70
+ mRenewCerts := systray .AddMenuItem ("Check if HTTPS certificates are expired" , "" )
70
71
// On linux/windows chrome/firefox/edge(chromium) the agent works without problems on plain HTTP,
71
72
// so we disable the menuItem to generate/install the certificates
72
73
if runtime .GOOS != "darwin" {
73
74
s .updateMenuItem (mGenCerts , true )
74
75
s .updateMenuItem (mRemoveCerts , true )
75
76
s .updateMenuItem (mCertsInfo , true )
77
+ s .updateMenuItem (mRenewCerts , true )
76
78
} else {
77
79
s .updateMenuItem (mGenCerts , config .CertsExist ())
78
80
s .updateMenuItem (mRemoveCerts , ! config .CertsExist ())
81
+ s .updateMenuItem (mRenewCerts , ! config .CertsExist ())
79
82
}
80
83
81
84
// Add pause/quit
@@ -131,6 +134,24 @@ func (s *Systray) start() {
131
134
}
132
135
oscmd := exec .Command ("osascript" , "-e" , "display dialog \" " + infoMsg + "\" buttons \" OK\" with title \" Arduino Agent: certificates info\" " )
133
136
_ = oscmd .Run ()
137
+ case <- mRenewCerts .ClickedCh :
138
+ if cert .IsExpired () {
139
+ err := cert .UninstallCertificates ()
140
+ if err != nil {
141
+ log .Errorf ("cannot uninstall certificates something went wrong: %s" , err )
142
+ } else {
143
+ certDir := config .GetCertificatesDir ()
144
+ cert .DeleteCertificates (certDir )
145
+ cert .GenerateCertificates (certDir )
146
+ err := cert .InstallCertificate (certDir .Join ("ca.cert.cer" ))
147
+ // if something goes wrong during the cert install we remove them, so the user is able to retry
148
+ if err != nil {
149
+ log .Errorf ("cannot install certificates something went wrong: %s" , err )
150
+ cert .DeleteCertificates (certDir )
151
+ }
152
+ }
153
+ }
154
+ s .Restart ()
134
155
case <- mPause .ClickedCh :
135
156
s .Pause ()
136
157
case <- mQuit .ClickedCh :
0 commit comments