Add Tailscale certificate API commands

This commit is contained in:
世界
2026-08-30 17:41:47 +08:00
parent 4658dfc6c6
commit 2a38f30125
10 changed files with 797 additions and 396 deletions
+22
View File
@@ -0,0 +1,22 @@
//go:build with_gvisor
package tailscale
import (
"context"
"time"
"github.com/sagernet/sing/common"
E "github.com/sagernet/sing/common/exceptions"
)
func (t *Endpoint) GetTailscaleCertificate(ctx context.Context, domain string, minValidity time.Duration) ([]byte, []byte, error) {
if !t.started.Load() {
return nil, nil, E.New("Tailscale is not ready yet")
}
certificatePEM, privateKeyPEM, err := common.Must1(t.server.LocalClient()).CertPairWithValidity(ctx, domain, minValidity)
if err != nil {
return nil, nil, E.Cause(err, "tailscale certificate")
}
return certificatePEM, privateKeyPEM, nil
}
+1
View File
@@ -42,6 +42,7 @@ func (t *Endpoint) SubscribeTailscaleStatus(ctx context.Context, fn func(*adapte
result.WaitingFileCount = t.taildrop.waitingFileCount()
result.ReceivingFileCount = t.taildrop.receivingFileCount()
result.UnreadFileCount = t.taildrop.unreadFileCount()
result.CertDomains = t.server.CertDomains()
if len(taildropTargets) > 0 {
for _, group := range result.UserGroups {
for _, peer := range group.Peers {