openssl生成证书+安装+使用实例

openssl生成证书主要为以下三步:

1. 生成CA证书

2. 生成Server证书

3.生成Client证书

一. 安装openssl(windows)

下载地址:http://slproweb.com/products/Win32OpenSSL.html

1.1 选择32位或者64位合适的版本下载


1.2 设置环境变量,变量值为应用安装目录下的bin目录,如C:\OpenSSL-Win64\bin


二. 证书生成

进入命令行使用openssl生成证书


2.1 CA 证书生成

创建私钥:

OpenSSL> genrsa -out ca-key.pem 2048


创建证书请求:

  • 7
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
您可以使用 Java 中的 Bouncy Castle 库来生成证书和签名值,然后使用 gmssl 进行验证。下面是一个简单的示例: ```java import java.io.FileInputStream; import java.security.KeyStore; import java.security.PrivateKey; import java.security.Security; import java.security.Signature; import java.security.cert.Certificate; import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.bouncycastle.util.encoders.Hex; public class GmsslExample { public static void main(String[] args) throws Exception { Security.addProvider(new BouncyCastleProvider()); // 加载证书和私钥 KeyStore keyStore = KeyStore.getInstance("PKCS12"); keyStore.load(new FileInputStream("path/to/certificate.p12"), "password".toCharArray()); String alias = keyStore.aliases().nextElement(); PrivateKey privateKey = (PrivateKey) keyStore.getKey(alias, "password".toCharArray()); Certificate cert = keyStore.getCertificate(alias); // 创建签名实例 Signature signature = Signature.getInstance("SM3withSM2", "BC"); signature.initSign(privateKey); // 添加待签名数据 byte[] data = "hello world".getBytes("UTF-8"); signature.update(data); // 生成签名值 byte[] signatureValue = signature.sign(); // 打印签名值 System.out.println("Signature Value: " + Hex.toHexString(signatureValue)); } } ``` 在这个例子中,我们使用了 Bouncy Castle 提供的 SM2 签名算法和 SM3 摘要算法来生成签名值,然后把签名值用十六进制的方式打印出来。 接下来,您可以使用 `openssl` 命令来验证签名值: ``` $ openssl sm2verify -cert path/to/certificate.crt -signature signature.hex -in data.txt ``` 其中,`path/to/certificate.crt` 是证书路径,`signature.hex` 是签名值的十六进制字符串,`data.txt` 是待签名数据的文件路径。如果签名值有效,`openssl` 命令会输出 `Verified OK`。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值