ほとんどの CA は、Verisign や Certum など、さまざまな「製品」でコード署名証明書を販売しています。
Microsoft Authenticode - 「EXE、OCX、DLL、bla ... に署名できます。」
Java CodeSign - 「Java コードに署名できます」
ソフトウェア発行者証明書 - 「ソフトウェアに署名できます」
さて、私はこれについて本当に混乱しています。価格を除いて、これらすべての製品の違いは何ですか? 気になったので、Verisign や他の CA に何度か質問しましたが、回答がありませんでした。
Certum CA から Authenticode 証明書を取得しました。私はそれを Internet Explorer に登録し、PKCS#12 PFX としてエクスポートし、約束どおり EXE、DLL などに署名することができました。
今...このPFXをkeytoolでJavaにインポートしようとした後、JARに署名しようとしました。そしてそれは働いた!
そして、製品として謎の「ソフトウェア発行元証明書」があります。私はそれで何に署名できる/すべきかわかりません... Mac?Linux? 「Microsoft Authenticode」もソフトウェア発行者証明書ではありませんか? EXEは「ソフトウェア」ではありませんか?それは本当に私を混乱させます。
そこで、私の質問は次のとおりです。Microsoft Authenticode 証明書を注文した場合、それを使用して JAR ファイルや可能であれば他のコンテンツに署名することは違法ですか? これらの証明書の間に技術的な違いはないようです。これらの製品はすべて、同じコード署名 EKU-OID "1.3.6.1.5.5.7.3.3" を持っている必要があります。これは、EXE、JAR、Adobe Air、およびそこに存在するものとの間で何の違いもありません。では、すべての「CodeSigning」証明書が技術的に同等である場合、「Java 開発者」または「Windows 開発者」または「ソフトウェア開発者」のいずれになりたいかを決定する必要があるのはなぜですか?
たぶん、証明書にまだ違いがありますか?署名に Authenticode-certs を使用すると、JAR で十分な権限が得られない可能性がありますか?
(PS: 私は自分のソフトウェアを商業的に使用していません!)