Windows下使用java调用OpenSSL(无需安装OpenSSL)

Java使用openssl详解(openssl安装教程、openssl制作证书、java代码实现openssl、浏览器通过https访问后端)入门 安装openssl 通过官网的下载源码编译或者直接通过exe文件直接下一步下一步安装完成,网上教程很多! openssl制作证书 先创建3个目录 certificate、service 、client 进入cmd cd到上面三个目录的父目录 1.创建私钥 : D:\IDEA\qqtxt>openssl genrsa -out certificate/ce-key.pem 1024 2.创建证书请求 : D:\IDEA\qqtxt>openssl req -new -out certificat 阅读详情

直接上代码:

代码所需要的配置文件下载地址 http://download.youkuaiyun.com/download/learning_lb/9951635

将OpenSSL整个目录复制到C盘根目录即可

 

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Demo {
	/**
	 * @author LB win系统下 java 调用OpenSSL
	 */
	public static String CertName = "CA";

	/** 这几个value为一些证书信息,不懂的自行百度 */
	public static String Cvalue = "CC";// 长度限制,两个字母
	public static String Svalue = "Svalue";
	public static String Lvalue = "Svalue";
	public static String Ovalue = "Ovalue";
	public static String OUvalue = "OUvalue";
	public static String CNvalue = "CNvalue";
	/** 这几个value为一些证书信息,不懂的自行百度 */

	public static String pw = "password";// 密码
	public static int yxq = 3650;// 有效期

	public static void main(String[] args) {
		try {
			Runtime runtime = Runtime.getRuntime();
			// 打开openSSL
			String cmd0 = "c:/OpenSSL/openssl.exe ";
			// 执行命令
			String cmd1 = "genrsa -out c:/cert/" + CertName + "-key.pem 1024 ";
			String cmd2 = "req -new -out c:/cert/" + CertName + "-req.csr -key c:/cert/" + CertName
					+ "-key.pem -passin pass:" + pw + " -subj  /C=" + Cvalue + "/ST=" + Svalue + "/L=" + Lvalue + "/O="
					+ Ovalue + "/OU=" + OUvalue + "/CN=" + CNvalue;
			String cmd3 = "x509 -req -in c:/cert/" + CertName + "-req.csr -out c:/cert/" + CertName
					+ "-cert.pem -signkey c:/cert/" + CertName + "-key.pem -days " + yxq;
			String cmd4 = "pkcs12 -export -clcerts -in c:/cert/" + CertName + "-cert.pem -inkey c:/cert/" + CertName
					+ "-key.pem -out c:/cert/" + CertName + ".p12 -password  pass:" + pw;
			Process process;
			int pcode = 0;
			process = runtime.exec(cmd0 + cmd1);
			pcode = process.waitFor();
			// pcode=0 ,无错误,等于1说明有错误。
			if (pcode == 1) {
				throw new Exception(getErrorMessage(process));
			}

			process = runtime.exec(cmd0 + cmd2);
			pcode = process.waitFor();
			if (pcode == 1) {
				throw new Exception(getErrorMessage(process));
			}

			process = runtime.exec(cmd0 + cmd3);
			pcode = process.waitFor();
			if (pcode == 1) {
				throw new Exception(getErrorMessage(process));
			}

			process = runtime.exec(cmd0 + cmd4);
			pcode = process.waitFor();
			if (pcode == 1) {
				throw new Exception(getErrorMessage(process));
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	// 得到控制台输出的错误信息
	private static String getErrorMessage(Process process) {
		String errMeaage = null;
		try {
			BufferedReader br = new BufferedReader(new InputStreamReader(process.getErrorStream()));
			String line = null;
			StringBuilder sb = new StringBuilder();
			while ((line = br.readLine()) != null) {
				sb.append(line + "\n");
			}
			errMeaage = sb.toString();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return errMeaage;
	}
}

 

 

 

 

 

Windows下用OpenSSL生成RSA密钥对:从安装到实战避坑指南 本文详细介绍了在Windows平台使用OpenSSL生成RSA密钥对的全流程,包括环境配置、私钥生成、公钥导出及常见问题解决方案。通过实战示例和最佳实践指南,帮助开发者高效完成密钥管理,确保数据安全。特别针对Windows环境下的路径权限、格式转换等特有问题提供专业解决方案。 阅读详情

相关推荐

证书工具之OpenSSL

1、查看openssl完整版本信息 [root@localhost ~]# openssl version -a OpenSSL 1.0.1e-fips 11 Feb 2013 built on: Mon May 9 09:54:24 CDT 2016 platform: linux-x86_64 options: bn(64,64) md2(int) rc4(16x,int) des(id...

michael_linux的博客,一个小小小学生。滴水穿石,步步为营,只为那刹那芳华。 3489

Java实现OpenSSL加解密

Java中实现使用OpenSSL进行密钥的加密和解密

promise524的博客 1678

Windows下OpenSSL自签名证书生成与Qt程序适配全攻略

SSL/TLS证书是保障网络通信安全的核心机制,它基于非对称加密和公钥基础设施(PKI)原理,通过数字签名建立身份认证与数据加密通道。在软件开发与测试中,自签名证书因其无需付费、快速部署的技术价值,被广泛应用于HTTPS本地开发、物联网设备通信及桌面应用加密传输等场景。然而,在Windows环境下,由于缺乏原生OpenSSL支持及系统证书存储与Qt运行时环境的割裂,开发者常面临证书生成、信任链建立及Qt程序适配等一系列挑战。本文聚焦OpenSSL环境配置、合规证书链生成(特别是包含SAN扩展)以及让Qt运行

深未来技术 425

Java——OpenSSL工具详解

c 使用:号分隔输出-r 以coreutils的格式输出-d 输出调试信息-hex 以16进制的格式输出中,默认-binary 以二进制的格式输出-sign file 使用文件中的私钥签名摘要-verify file 使用文件中的公钥验证签名-prverify file 使用文件中的私钥验证签名-keyform arg 密钥文件格式,默认PEM-out filename 输出到文件名而不是stdout-signature file 要验证的签名文件-sigopt nm:v 签名参数。

吴声子夜歌的博客 7635

Windows 11下OpenSSL 3.x环境配置与自签名证书生成实战指南

SSL/TLS协议是现代网络通信安全的基石,它通过非对称加密、数字证书和公钥基础设施(PKI)等密码学原理,为数据传输提供了身份认证、加密和完整性保护。在工程实践中,开发者常需在本地或测试环境快速部署HTTPS服务、加密API通信或搭建内部安全通道,而无需依赖昂贵的商业证书。OpenSSL作为功能强大的开源密码学工具包,是实现这些需求的核心技术组件。本文聚焦于**Windows 11平台**,详细解析如何高效部署**OpenSSL 3.x**环境,并手把手指导生成适用于本地开发与测试的**自签名证书**,涵

weixin_30596165的博客 359

Java JNI OpenSSL Nginx证书私钥有效性校验

通过JNI,我们可以使用C/C++编写的库来执行一些高级操作,例如验证证书和私钥的有效性。在使用Java JNI调用OpenSSL库验证Nginx证书和私钥的有效性时,我们可以编写一些代码来实现这一功能。然后,我们使用OpenSSL库中的函数来读取证书和私钥文件,并将它们存储在相应的结构体中。通过以上步骤,我们就可以在Java中使用JNI调用OpenSSL库来验证Nginx证书和私钥的有效性了。接下来,我们需要创建一个C/C++文件,实现JNI方法来验证证书和私钥的有效性。在上面的代码中,我们首先通过。

CyberLancer的博客 271

Java——OpenSSL工具示例

2、进制转换 openssl未提供进制转换功能,此处使用xxd命令。语法: 可用选项: 2.1、二进制 每组16位: 每行24位,每8位一组 2.2、十六进制 纯输出十六进制: 十六进制还原为ASCII: 3、摘要 3.1、MD5 3.2、SHA 3.3、Hmac 4、数字签名 4.1、RSA 4.2、DSA 5、对称加密 openssl enc命令的加密/解密实际需要3个参数:指定参数的方式有两种:第一种方式:指定口令,随机参数 生成的参数: 加密的结果:b.txt 第

吴声子夜歌的博客 2260

Windows下安装最新版的OpenSSL,并解决OpenSSL不是当前版本的问题,或者安装不正确的问题

Windows下安装最新版的OpenSSL,并解决OpenSSL不是当前版本的问题,或者安装不正确的问题

念兮为美 831

OpenSSL安装教程

OpenSSL安装教程 openssl官网下载地址:http://slproweb.com/products/Win32OpenSSL.html 安装环境: windows 10 Win64 OpenSSL v1.1.1i 一.下载openssl安装版 我这里是win10 64位,所以选的中间那个 二.安装过程 三.配置环境变量 四.生成私钥公钥 keytool -genkeypair -alias descut -keyalg RSA-keypass descut -keystore des

夏天的博客 1万+

MOSFET高频响应实战:如何用LTspice仿真内部电容效应(附模型文件)

本文深入解析MOSFET高频响应中的内部电容效应,通过LTspice仿真工具详细展示如何提取模型参数并优化高频特性。从栅极相关电容到结电容的物理本质,再到实战案例中的开关损耗分析和频率响应扫描,提供全面的设计优化方法,帮助工程师有效应对高速开关电路中的电容挑战。

weixin_33725722的博客 390

从入门到实战:openEuler 系统管理与运维笔记(持续更新)

本文为openEuler系统管理与运维的实战笔记,从CentOS迁移者视角切入,详细介绍了openEuler的生态兼容性、内核优化及安全特性。内容涵盖系统安装规划、虚拟机部署、基础命令操作、文件系统管理以及用户权限配置等核心运维技能,旨在帮助读者快速上手并掌握这一企业级操作系统的日常管理。

weixin_29207149的博客 222

Windows下openssl安装及使用

配置过程中需要生成一些mak文件,这些生成代码用perl脚本生成,所以要安装一个ActivePerl. 网址:http://www.activestate.com/activeperl/ 下载后直接安装就行了! 下载openssl 网址http://www.openssl.org/ 我用的是openssl-0.9.8g版本,解压到c盘根目录。 安装步骤: (可以参照o...

weixin_30299709的博客 1362

WRF后处理:python cartopy绘制土地利用/土地分类图//python绘制WRF下垫面类型(以北极为例)

下垫面类型对于WRF的地表过程十分重要,而在我们研究WRF的地表过程之前,需要对输入的土地利用类型进行一些绘制,以便后续的修改。LU_MODIS21函数定义了绘制的土地类型、标签与对应色标,我们使用时,直接引用LU_MODIS21()即可返回。其实很简单,只要将你拥有的土地类型数据提取出来,将原本函数中的labels和C切片,重新定义色标再绘制即可。在这里,我将以北极地区为例,绘制北极地区的WRF下垫面数据,我使用的MODIS21这类。

weixin_43750300的博客 3859

java openssl 证书_Java如何基于command调用openssl生成私钥证书

在windows环境下进行的测试,前提条件,windows上需要先安装openssl。配置环境变量,查看版本:import java.io.*;import java.util.Properties;public class OpensslCommand {private static void runCMD(String[] CMD) {java.lang.Process process = n...

weixin_30898555的博客 417

verilog常用模块1——按键消抖模块详解

按键消抖模块key_filter 1. 原理介绍 如图,按键未按下时keys信号为高电平,按下则为低电平;通过检测keys信号电平,就可以判断按键状态。 但反作用弹簧会导致抖动现象,电平信号出现一段不确定波形 一般情况下,抖动的电平信号为1的持续时间不会超过20ms,只要通过对抖动波形的发生时长计时(计数),当为1的时长超过20ms,则可判定 进入了发生了按键按下/释放动作,并确定按键状态...

coin的博客 1万+

Python爬虫实战:社交媒体热点事件追踪与情感分析可视化

本文探讨了如何利用Python爬虫技术从微博和Twitter等社交媒体平台抓取数据,进行热点事件追踪和情感分析,并通过可视化方式展示舆论情感变化。文章详细介绍了最新的爬虫技术、数据处理方法和可视化实现,提供了完整的代码示例,帮助读者构建自己的社交媒体分析系统。关键词:Python爬虫、社交媒体分析、情感分析、数据可视化、热点追踪爬虫框架:Requests-HTML、aiohttp、Twint(Twitter专用)数据处理文本处理:Jieba(中文分词)、NLTK(英文处理)情感分析。

2201_76125261的博客 1105

android openssl 编译环境,android openssl windows环境编译使用

转自:http://blog.youkuaiyun.com/zhouli_csdn/article/details/51550427由于linux自带openssl,编译Android系统时,不必编译openssl,要是我们自己写Android程序,尤其是在Windows上写Android小程序,就必须要重新编译Openssl了。首先必备条件是安装NDK,我的windows上得NDK是R10d版本,并配置好...

weixin_34226447的博客 758

Python 爬虫实战:在房天下抓取房产信息,分析房价走势

通过本次 Python 爬虫实战,我们成功地从房天下爬取了房产信息,并进行了存储、处理、分析和可视化展示。在这个过程中,我们不仅掌握了爬虫技术的基本应用,还学会了如何对动态加载的数据进行处理和分析。然而,本次爬虫任务也存在一些局限性,例如仅爬取了部分区域的房产数据,且未对房产的图片和视频内容进行分析。在未来的工作中,我们可以进一步优化爬虫程序,爬取更多区域的房产数据,并深入分析房产的多媒体内容、用户行为模式等,为购房者和房地产从业者提供更有价值的数据支持。

u014481728的博客 1368

Windows下OpenSSL安装与RSA密钥对生成完整指南

非对称加密是现代信息安全的核心技术之一,它通过一对数学关联的公钥和私钥实现数据加密与身份验证。RSA算法作为最经典的非对称加密实现,其安全性基于大数质因数分解的困难性,广泛应用于数字签名、安全通信和数据加密等场景。在工程实践中,OpenSSL作为功能强大的密码学工具库,是生成和管理RSA密钥对的标准选择。特别是在Windows环境下,从安装配置到密钥生成,常会遇到环境变量设置、格式兼容性等实际问题。本指南将详细解析如何正确安装OpenSSL,并生成符合安全标准的RSA密钥对,涵盖密钥长度选择、密码保护、格式

weixin_33672400的博客 403

Python 爬虫实战:爬取今日头条文章与阅读量数据

本文详细介绍了基于Python爬取今日头条文章与阅读量数据的完整方案。通过分析今日头条API接口,采用Requests+正则表达式技术实现数据抓取,重点解决加密参数构造、请求头模拟、反爬规避等核心问题。文章包含文章列表获取、详情数据提取、互动数据采集等完整流程,并提供数据存储与基础分析方法。同时强调合规使用爬虫技术,控制爬取频率,避免干扰平台运营。该方案可为内容传播分析、用户兴趣研究提供数据支持,但需注意接口参数更新和反爬机制变化,适时调整代码实现。

2503_91057718的博客 2519

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

windows下安装OpenSSL 生成RSA私钥与公钥

下载根据提示一步步安装 OpenSSL 链接:https://pan.baidu.com/s/12ldxdKpPuY4HYn6HehJGoQ 提取码:h4py 我的安装目录是:C:\OpenSSL-Win64 打开安装目录进入bin文件夹 运行openssl 生成明文RSA私钥 OpenSSL> genrsa -out rsa_private_key.pem 2048...

qq_41875147的博客 779

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

[转]在 VC 2008 中使用 openssl 库

<br />[转]在 VC 2008 中使用 openssl 库<br /><br /> [转]使用Visual Studio 2008编译OpenSSL [转]DES 算法的 C++ 与 JAVA 互相加解密[转]在 VC 2008 中使用 openssl 库<br />OpenSSL2010-03-15 15:48:01阅读364评论0  字号:大中小 订阅<br />在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。<br />下载最新版本的Perl:http:

luxiaoyu_sdc的专栏 2541

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Windows 安装OpenSSL 3.x.x

Windows 一键安装 OpenSSL 的方法

开源仓颉 1171

windows编译64位openssl给64位java jni调用(vs2017)

1,首先clone openssl代码,仓库:https://github.com/openssl/openssl.git 2,然后切换到分支:git checkout OpenSSL_1_0_2-stable 3,配置环境,下载并安装ActivePerl。 下载地址:http://www.activestate.com/activeperl/downloads ,我现在 的是64位的

qq372848728的博客 1445

[OpenSSL] OpenSSL for windows 发布版(已编译) 下载

原文是https://wiki.openssl.org/index.php/Binaries 感谢openssl组织! Third Party OpenSSL Related Binary Distributions Product Description URL OpenSSL for Windows Works with MSVC++, Builder 3/4/5, and MinGW. Comes in form of self-install executables.

H_O_W_E的专栏 4294
上一篇: SHA256withRSA签名验签
下一篇: HTTPS证书配置(单向认证)
Liu_Dag
博客等级 码龄10年 37粉丝 21原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Liu_Dag

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值