дȫÏîĿÉó²éÎÊÌⲢ·¢²¼ v1.1.9
¸ÄÓñ¾»ú¶ÀÁ¢ CA£¬»ָ´ CLI TLS УÑ飬±£»¤ƾ¾ÝÓëÅäÖò¢·¢±£´档 д Cursor Êý¾ݡ¢»Ự·¾¶¡¢´úÀíÉúÃüÖÜÆڡ¢ģÐÍÇëÇóÓë Skills Îļþ²Ù×÷¡£ Ϊ¶ÀÁ¢ Tab ·þÎñÔö¼ӿͻ§¶˼øȨ£¬Éý¼¶ÒÀÀµÓ빤¾ßÁ´£¬ÍêÉƷ¢²¼ԪÐÅϢͬ²½¡£ Ñé֤£ºÁ½¸ö Go ģ¿éµIJâÊÔ/vet¡¢¹ؼüģ¿é race¡¢ǰ¶˲âÊÔ/Éú²ú¹¹½¨/Éó¼ơ¢ Go ¿ɴï©¶´ɨÃèÓë macOS/Linux ¿ÉÐÐģ¿齻²æ±àÒë¾ùͨ¹ý¡£ Windows ¸ôÀëÆô¶¯ͨ¹ý£»δÍê³ɵĵã»÷ðÑ̺ÍԭÉúƽ̨Ñé֤¼ûÉó²鱨¸档
This commit is contained in:
@@ -5,6 +5,7 @@ package cursor
|
||||
import (
|
||||
"crypto/sha1"
|
||||
"crypto/x509"
|
||||
"cursor/internal/certs"
|
||||
"encoding/pem"
|
||||
"fmt"
|
||||
"os/exec"
|
||||
@@ -84,15 +85,23 @@ func installCACertToDarwinKeychain(certPEM []byte, certPath string) error {
|
||||
|
||||
// EnsureCACertInstalled 确保 CA 证书已安装到 macOS 登录钥匙串。
|
||||
func EnsureCACertInstalled(certPEM []byte, certPath string) error {
|
||||
installed, err := isCACertInstalled(certPEM)
|
||||
if err != nil {
|
||||
return fmt.Errorf("检查 macOS 证书安装状态失败: %w", err)
|
||||
}
|
||||
if installed {
|
||||
logger.Infof("ensureCACertInstalled: cert already installed in macOS login keychain, skipping")
|
||||
return migrateCATrust(certPEM, isCACertInstalled, func() error {
|
||||
if err := installCACertToDarwinKeychain(certPEM, certPath); err != nil {
|
||||
return err
|
||||
}
|
||||
legacy, err := getCertSHA1Fingerprint(certs.EmbeddedCACertPEM())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
exists, err := isCACertInstalled(certs.EmbeddedCACertPEM())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if exists {
|
||||
if out, err := exec.Command(darwinSecurityExe, "delete-certificate", "-t", "-Z", legacy, darwinLoginKeychainName).CombinedOutput(); err != nil {
|
||||
return fmt.Errorf("移除旧共享证书失败: %w: %s", err, strings.TrimSpace(string(out)))
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
logger.Infof("ensureCACertInstalled: cert not installed in macOS login keychain, installing...")
|
||||
return installCACertToDarwinKeychain(certPEM, certPath)
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user