当我尝试以下操作时:
mba:Utilities ryan$ sudo codesign -fs /Applications/Utilities/Boot\ Camp\ Assistant.app/
我收到此错误:
/Applications/Utilities/Boot Camp Assistant.app/: no identity found
显然我没有正确的代码签名,但是如果我注册了mac开发人员程序,那就可以了。
如何在不注册mac开发人员计划的情况下获得签名?
答案 0 :(得分:12)
您需要创建自签名证书。
然后,如果您的证书名称为my-new-cert
,则您的命令应该如下所示:
sudo codesign -fs my-new-cert /Applications/Utilities/Boot\ Camp\ Assistant.app
这适用于OS X 10.10 Yosemite。
答案 1 :(得分:1)
虽然我无法理解您为什么要尝试重新启动Boot Camp助理,但您可以将codesign工具与自签名CA和身份一起使用。
Apple已在其开发人员文档TN2206: OS X Code Signing In Depth中执行此操作。
答案 2 :(得分:0)
如果需要使用 openssl 命令行创建自签名证书并将其用于签名,可以执行以下操作:
1)创建具有以下内容的 spaghetti.software.extensions 配置文件:
[ ca ]
default_ca = CA_default
[ req ]
distinguished_name = req_distinguished_name
x509_extensions = v3_ca
#req_extensions = v3_req
[req_distinguished_name ]
CN = spaghetti.software.com
[ CA_default ]
x509_extensions = usr_cert
[ usr_cert ]
[ v3_ca ]
basicConstraints = critical, CA:FALSE
keyUsage = critical, cRLSign, digitalSignature, keyCertSign
extendedKeyUsage = critical, serverAuth, clientAuth, codeSigning, emailProtection
2)运行以下命令来创建证书,并将证书和密钥打包在 .p12 文件(PKCS12)中:
openssl req -subj '/CN=spaghetti.software.com' -config spaghetti.software.extensions -x509 -newkey rsa:4096 -keyout selfSignedKey.pem -out selfSigned.pem -days 365
openssl pkcs12 -export -out spaghetti.software.p12 -inkey selfSignedKey.pem -in selfSigned.pem
3)创建一个新的 .keychain 文件,并将 spaghetti.software.p12 文件导入到钥匙串中 (我相信如果您不想使用“钥匙串访问”应用程序,也可以在命令行中执行此操作)。
4)然后,您可以使用证书签名:
codesign -s "spaghetti.software.com" --force <binaryToSign>
如果需要,您可以添加--keychain <MyKeyChain.keychain>
。