是否有一些高水平的方式来写一个X509Certificate成PEM格式的string? 目前我正在做x509cert.encode()将其写入一个DER格式化的string,然后base 64编码它,并添加页眉和页脚创build一个PEMstring,但它似乎不好。 特别是因为我不得不抛出分行。
我们正尝试使用C#和BouncyCastle库以编程方式生成X509证书(包括私钥)。 我们已经尝试使用Felix Kollmann的这个示例中的一些代码,但是证书的私钥部分返回null。 代码和unit testing如下: using System; using System.Collections; using Org.BouncyCastle.Asn1; using Org.BouncyCastle.Asn1.X509; using Org.BouncyCastle.Crypto; using Org.BouncyCastle.Crypto.Generators; using Org.BouncyCastle.Crypto.Prng; using Org.BouncyCastle.Math; using Org.BouncyCastle.Security; using Org.BouncyCastle.X509; namespace MyApp { public class CertificateGenerator { /// <summary> /// /// </summary> /// <remarks>Based on <see cref="http://www.fkollmann.de/v2/post/Creating-certificates-using-BouncyCastle.aspx"/></remarks> /// <param name="subjectName"></param> /// <returns></returns> public static byte[] GenerateCertificate(string subjectName) { var kpgen […]
我需要使用x509证书通过互联网从富客户端获得安全的消息级别身份validation才能获得安全的WCF Web服务。 具体而言,我正在寻找设置,configuration,编码和部署的分步指南,包括创build“开发”证书,安装它,以及获取“真实”生产证书。
如何在两种公钥格式之间转换,一种格式是: —–BEGIN PUBLIC KEY—– … —–END PUBLIC KEY—– 另一种格式是: —–BEGIN RSA PUBLIC KEY—– … —–END RSA PUBLIC KEY—– 例如我使用ssh-keygen命令生成了id_rsa / id_rsa.pub对,我使用以下命令计算了id_rsa中的公钥: openssl rsa -in id_rsa -pubout -out pub2 然后再次从id_rsa.pub计算公钥使用: ssh-keygen -f id_rsa.pub -e -m pem > pub1 内容是pub1是: —–BEGIN RSA PUBLIC KEY—– MIIBCgKCAQEA61BjmfXGEvWmegnBGSuS+rU9soUg2FnODva32D1AqhwdziwHINFa D1MVlcrYG6XRKfkcxnaXGfFDWHLEvNBSEVCgJjtHAGZIm5GL/KA86KDp/CwDFMSw luowcXwDwoyinmeOY9eKyh6aY72xJh7noLBBq1N0bWi1e2i+83txOCg4yV2oVXhB o8pYEJ8LT3el6Smxol3C1oFMVdwPgc0vTl25XucMcG/ALE/KNY6pqC2AQ6R2ERlV gPiUWOPatVkt7+Bs3h5Ramxh7XjBOXeulmCpGSynXNcpZ/06+vofGi/2MlpQZNhH Ao8eayMp6FcvNucIpUndo1X8dKMv3Y26ZQIDAQAB —–END RSA PUBLIC KEY—– pub2的内容是: —–BEGIN PUBLIC […]
我写了一小段代码,读取存储在.pem文件中的公钥和私钥。 我正在使用以下命令来生成密钥。 下面的命令生成一对密钥。 $openssl genrsa -out mykey.pem 2048 这个命令生成私钥 $openssl pkcs8 -topk8 -inform PEM -outform PEM -in mykey.pem \ -out private_key.pem -nocrypt 和这个命令来获取公钥。 $ openssl rsa -in mykey.pem -pubout -outform DER -out public_key.der 我写了两个分别读取私钥和公钥的方法。 public PrivateKey getPemPrivateKey(String filename, String algorithm) throws Exception { File f = new File(filename); FileInputStream fis = new FileInputStream(f); DataInputStream dis […]
根据X.509,证书具有属性主题。 C = US,ST = Maryland,L = Pasadena,O = Brent Baccala,OU = FreeSoft, CN=www.freesoft.org/emailAddress=baccala@freesoft.org 这是典型的学科价值。 问题是这些属性(C,ST,L,O,OU,CN)的types(或标签)是什么,它们的格式是什么?
我试图发送请求到现有的web服务。 这个webservice不受我的pipe辖。 这个webservice的安全策略要求我在我的SOAP请求中发送完整的证书链。 我的证书链包含3个证书。 证书链的设置没有问题,因为我能够testing它的有效性(并且已经这样做)。 这个设置的安全configuration(=在请求中发送完整的证书链)是: <xwss:Sign id="signature"> <xwss:X509Token certificateAlias="alias" keyReferenceType="Direct" valueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509PKIPathv1" /> </xwss:Sign> 我试图通过Spring-WS实现这一点。 Spring-WS使用spring-ws-security来确保安全性。 Spring-ws-security委托给xws-security。 <dependency> <groupId>org.springframework.ws</groupId> <artifactId>spring-ws-security</artifactId> <version>2.1.0.RELEASE</version> <exclusions> <exclusion> <groupId>org.apache.ws.security</groupId> <artifactId>wss4j</artifactId> </exclusion> <exclusion> <groupId>com.sun.xml.wsit</groupId> <artifactId>xws-security</artifactId> </exclusion> </exclusions> </dependency> Xws安全有两种口味: <dependency> <groupId>com.sun.xml.wsit</groupId> <artifactId>xws-security</artifactId> <version>1.3.1</version> </dependency> 和 <dependency> <groupId>com.sun.xml.wss</groupId> <artifactId>xws-security</artifactId> <version>3.0</version> </dependency> 第一个被Spring WS Security使用。 其次是传统。 在xws-security中应用我的XWSSconfiguration是在一个名为BinarySecurityToken的类中完成的。 BinarySecurityToken有一个名为的字段 valueType valueType的JavaDoc表示它支持X509PKIPathv1(等等)。 但是,正如这位二传手所说: protected void […]
我正在使用SslServerSocket和客户端证书,并希望从客户端的X509Certificate的SubjectDN中提取CN。 目前我打电话给cert.getSubjectX500Principal().getName()但这当然给了我的客户端的总格式化的DN。 出于某种原因,我只是对CN=theclient部分感兴趣。 有没有办法提取这部分的DN,而不是自己parsingstring?
我试图用OpenSSL和SubjectAltName生成一个自签名证书。虽然我为证书生成了csr,但是我的猜测是我必须使用OpenSSL x509的v3扩展。 我在用 : openssl req -new -x509 -v3 -key private.key -out certificate.pem -days 730 有人可以帮助我的确切语法?
我想从我的PKCS#12文件中提取公钥和私钥,以便以后在SSH公钥validation中使用。 现在,我通过ssh-keygen生成密钥,并将其放在.ssh / authorized_key中 ,分别放在客户端的某个地方。 将来,我想使用PKCS#12容器中的密钥,所以我必须先从PKCS#12中提取公钥,然后将它们放入.ssh / authorized_keys文件中。 有没有机会通过openssl得到这个工作? PKCS#12中的密钥是否与ssh-public-key身份validation兼容?