标签: x509

217
推荐指数
2
解决办法
54万
查看次数

从PKCS12文件中提取公钥/私钥,以便以后在SSH-PK-Authentication中使用

我想从我的PKCS#12文件中提取公钥和私钥,以便以后在SSH-Public-Key-Authentication中使用.

现在,我通过ssh-keygen生成密钥,我将它放在.ssh/authorized_key中,分别位于客户端的某个地方.

将来,我想使用PKCS#12容器中的密钥,所以我首先从PKCS#12中提取公钥,然后将它们放入.ssh/authorized_keys文件中.有没有机会通过openssl实现这一点?PKCS#12中的密钥是否兼容ssh-public-key身份验证?

ssh openssl certificate pkcs#12 x509

184
推荐指数
4
解决办法
38万
查看次数

CryptographicException'Keyset不存在',但仅限于WCF

我有一些代码调用使用X.509认证保护的第三方Web服务.

如果我直接调用代码(使用单元测试),它可以正常工作.

部署后,将通过WCF服务调用此代码.我添加了第二个调用WCF服务的单元测试,但是当我在第三方Web服务上调用方法时,这个CryptographicException消息失败了"Keyset does not exist".

我认为这是因为我的WCF服务将尝试使用不同的用户自己调用第三方Web服务.

任何人都可以解决这个问题吗?

.net wcf x509

152
推荐指数
7
解决办法
18万
查看次数

如何使用OpenSSL生成具有SubjectAltName的自签名证书?

我正在尝试使用带有SubjectAltName的OpenSSL生成一个自签名证书.虽然我正在为证书生成csr,但我猜我必须使用OpenSSL x509的v3扩展.我在用 :

openssl req -new -x509 -v3 -key private.key -out certificate.pem -days 730
Run Code Online (Sandbox Code Playgroud)

有人可以用确切的语法帮助我吗?

ssl openssl ssl-certificate x509certificate x509

107
推荐指数
1
解决办法
14万
查看次数

如何在两种公钥格式之间进行转换,一种是"BEGIN RSA PUBLIC KEY",另一种是"BEGIN PUBLIC KEY"

如何在两种公钥格式之间进行转换,一种格式为:

-----BEGIN PUBLIC KEY-----
...
-----END PUBLIC KEY-----
Run Code Online (Sandbox Code Playgroud)

另一种格式是:

-----BEGIN RSA PUBLIC KEY-----
...
-----END RSA PUBLIC KEY-----
Run Code Online (Sandbox Code Playgroud)

例如,我使用ssh-keygen命令生成了id_rsa/id_rsa.pub对,我使用以下方法计算了id_rsa中的公钥:

openssl rsa -in id_rsa -pubout -out pub2 
Run Code Online (Sandbox Code Playgroud)

然后我再次使用以下方法从id_rsa.pub计算公钥:

ssh-keygen -f id_rsa.pub -e -m pem > pub1
Run Code Online (Sandbox Code Playgroud)

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-----
Run Code Online (Sandbox Code Playgroud)

而pub2的内容是:

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA61BjmfXGEvWmegnBGSuS
+rU9soUg2FnODva32D1AqhwdziwHINFaD1MVlcrYG6XRKfkcxnaXGfFDWHLEvNBS
EVCgJjtHAGZIm5GL/KA86KDp/CwDFMSwluowcXwDwoyinmeOY9eKyh6aY72xJh7n
oLBBq1N0bWi1e2i+83txOCg4yV2oVXhBo8pYEJ8LT3el6Smxol3C1oFMVdwPgc0v
Tl25XucMcG/ALE/KNY6pqC2AQ6R2ERlVgPiUWOPatVkt7+Bs3h5Ramxh7XjBOXeu
lmCpGSynXNcpZ/06+vofGi/2MlpQZNhHAo8eayMp6FcvNucIpUndo1X8dKMv3Y26
ZQIDAQAB
-----END PUBLIC KEY-----
Run Code Online (Sandbox Code Playgroud)

根据我的理解,pub1和pub2包含相同的公钥信息,但它们的格式不同,我想知道如何在两种格式之间进行转换?任何人都可以向我展示两种格式的简明介绍吗?

openssl ssh-keys x509 public-key pkcs#1

83
推荐指数
5
解决办法
6万
查看次数

如何从Java中的X509Certificate中提取CN?

我正在使用SslServerSocket和客户端证书,并希望从客户端的SubjectDN中提取CN X509Certificate.

我打电话的那一刻,cert.getSubjectX500Principal().getName()但这当然给了我客户端的格式化DN.出于某种原因,我只对CN=theclientDN 的部分感兴趣.有没有办法提取DN的这一部分而不自己解析String?

java ssl x509certificate x509

82
推荐指数
8
解决办法
7万
查看次数

使用OpenSSL以编程方式创建X509证书

我有一个C/C++应用程序,我需要创建一个包含公钥和私钥的X509 pem证书.证书可以是自签名的,也可以是未签名的,无关紧要.

我想在应用程序中执行此操作,而不是从命令行执行此操作.

什么OpenSSL功能会为我做这个?任何示例代码都是奖金!

openssl ssl-certificate x509 pkix

68
推荐指数
3
解决办法
5万
查看次数

如何读取.pem文件以获取私钥和​​公钥

我正在编写一小段代码,用于读取存储在.pem文件中的公钥和私钥.我使用以下命令来生成密钥.

下面的命令生成一对密钥.

   $openssl genrsa -out mykey.pem 2048
Run Code Online (Sandbox Code Playgroud)

此命令用于生成私钥

$openssl pkcs8 -topk8 -inform PEM -outform PEM -in mykey.pem \
    -out private_key.pem -nocrypt
Run Code Online (Sandbox Code Playgroud)

和此命令获取公钥.

$ openssl rsa -in mykey.pem -pubout -outform DER -out public_key.der
Run Code Online (Sandbox Code Playgroud)

我写了两个分别读取私钥和公钥的方法.

   public  PrivateKey getPemPrivateKey(String filename, String algorithm) throws Exception {
      File f = new File(filename);
      FileInputStream fis = new FileInputStream(f);
      DataInputStream dis = new DataInputStream(fis);
      byte[] keyBytes = new byte[(int) f.length()];
      dis.readFully(keyBytes);
      dis.close();

      String temp = new String(keyBytes);
      String privKeyPEM = temp.replace("-----BEGIN PRIVATE KEY-----\n", "");
      privKeyPEM = privKeyPEM.replace("-----END …
Run Code Online (Sandbox Code Playgroud)

java openssl pem pkcs#8 x509

63
推荐指数
5
解决办法
15万
查看次数

证书科目X.509

根据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)的类型(或标签)是什么,它们的格式是什么?

asn.1 certificate dn x509

52
推荐指数
1
解决办法
7万
查看次数

在Spring-WS的xws-security中支持X509PKIPathv1

我正在尝试向现有的Web服务发送请求.此网络服务不受我的约束.此Web服务的安全策略要求我在SOAP请求中发送完整的证书链.我的证书链包含3个证书.证书链的设置没有问题,因为我能够测试它的有效性(并且已经这样做了).

此设置的安全配置(=在请求中发送完整的证书链)是:

<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>
Run Code Online (Sandbox Code Playgroud)

我试图通过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>
Run Code Online (Sandbox Code Playgroud)

Xws-security有两种版本:

    <dependency>
        <groupId>com.sun.xml.wsit</groupId>
        <artifactId>xws-security</artifactId>
        <version>1.3.1</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

    <dependency>
        <groupId>com.sun.xml.wss</groupId>
        <artifactId>xws-security</artifactId>
        <version>3.0</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

第一个由Spring WS Security使用.第二个是遗产.

在xws-security中应用我的XWSS配置是在名为BinarySecurityToken的类中完成的.BinarySecurityToken有一个名为的字段

valueType
Run Code Online (Sandbox Code Playgroud)

valueType的JavaDoc表示它支持X509PKIPathv1(以及其他).但是,正如这个二传手所说:

    protected void setValueType(String valueType) {
    if (!(MessageConstants.X509v3_NS.equals(valueType)||MessageConstants.X509v1_NS.equals(valueType))) { 
        log.log(Level.SEVERE,"WSS0342.valtype.invalid");
        throw new RuntimeException("Unsupported value type: " + valueType);
    }
    this.valueType = valueType;
}
Run Code Online (Sandbox Code Playgroud)

MessageConstants类(甚至)没有X509PKIPathv1的静态.当我运行我的代码时,我得到了预期的结果:

Unsupported value type: http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509PKIPathv1
Run Code Online (Sandbox Code Playgroud)

我能够查看遗产的源代码com.sun.xml.wss.xws-security:3.0.尽管我付出了努力,但我还没有找到它的源代码com.sun.xml.wsit.xws-security-1.3.1.不过我相信代码是一样的.我尝试了两个库,两者都给了我相同的例外.我尝试了它,使用默认的spring-ws-security并对两个库使用显式依赖声明(一次一个).

我的问题:

  1. 有没有人能够使用xws-security生成值为X509PKIPathv1的X509签名和一个Direct的keyReferenceType? …

java spring spring-ws x509

47
推荐指数
1
解决办法
2065
查看次数