利用keytool、openssl生成证书文件
转载请标明出处:http://blog.csdn.net/shensky711/article/details/52225073
本文出自: 【HansChen的博客】
用openssl指令逐步生成各个文件
- 生成服务器密钥:openssl genrsa -out server_private.key 2048
- 从密钥生成公钥(非必须):openssl rsa -in server_private.key -pubout > server_public.key
- 生成证书请求文件,这里会让你输入一堆信息,比如组织名称、个人信息等:openssl req -new -key server_private.key -out server_req.csr
初始化CA环境
mkdir demoCA
cd demoCA
mkdir certs crl newcerts
touch index.txt serial
echo 00 > serial
cd ..生成ca密钥:openssl genrsa -out ca.key 2048
- 生成ca证书:openssl req -new -x509 -key ca.key -out ca.crt
- 用ca对服务器证书请求文件进行签名:openssl ca -in server_req.csr -out server.crt -cert ca.crt -keyfile ca.key -config /usr/ssl/openssl.cnf
- 可以把服务端的私钥和已签名的证书合并到一个pkcs12格式的文件:openssl pkcs12 -export -out server.pfx -inkey server_private.key -in server.crt
- 也可以把pkcs12格式转化为java常用的jks格式:keytool -importkeystore -v -srckeystore server.pfx -srcstoretype pkcs12 -srcstorepass 123456 -destkeystore server.jks -deststoretype jks -deststorepass 123456
用keytool生成
keytool主要可以帮我们:
- 创建一个新的JKS(Java Key Store)文件(里面包含了一个新生成的服务器密钥)
- 导出一个CSR(Certificate Signung Request)证书申请文件
- 导入一个签名后的证书文件到jks文件中
以下是操作步骤:
- 生成新的jks文件:keytool -genkeypair -alias server -keyalg RSA -keystore server.jks
- 到出证书请求文件:keytool -certreq -alias server -file server.csr -keystore server.jks
- 用ca对请求文件进行签名(ca的生成请参考上面):openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config demoCA/config/openssl.cnf
- 导入已签名的证书到jks:keytool -importcert -alias server -file server.crt -keystore server.jks
这样,我们就得到了一个包含了服务器密钥以及已签名证书的jks文件了
最终生成的文件
最终服务端需要用到的文件有:
1. 服务器私钥
2. 经过CA签名的证书(包含服务器公钥、基本信息)
客户端需要用到的文件有:
1. CA的证书(包含了CA的公钥,用以对服务器的证书解密,校验证书真伪)
有些服务器配置可以使用私钥+证书合并在一起的文件,如jks或者pkcs12文件,这类文件一般叫key.keystore。客户端使用的ca证书一般称为:truststore
遇到的问题
openssl对证书签名的时候有可能报国家、组织、地区需一致的错误,是因为在openssl.cfg中的policy_match里面的前三个都选了match,可以修改optional,修改后就可以了
利用keytool、openssl生成证书文件的更多相关文章
- 用OpenSSL命令行生成证书文件
用OpenSSL命令行生成证书文件 1.首先要生成服务器端的私钥(key文件): openssl genrsa -des3 -out server.key 1024 运行时会提示输入密码,此密码用于加 ...
- 如何利用OpenSSL生成证书
此文已由作者赵斌授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 一.前言 最近为了测试内容分发网络(Content Delivery Network,简称 CDN)添加的新功 ...
- CentOS6系统openssl生成证书和自签证书
CentOS6系统openssl生成证书和自签证书的过程,记录一下,本文基于CentOS 6 64bit.$ yum install openssl openssl-devel 1,生成服务器端的私钥 ...
- 使用OpenSSL生成证书
使用OpenSSL生成证书 下载安装openssl,进入/bin/下面,执行命令(把ssl目录下的openssl.cnf 拷贝到bin目录下)1.首先要生成服务器端的私钥(key文件):openssl ...
- tomcat配置https–采用JDK自带的keytool工具生成证书
转自:http://blog.csdn.net/huangxinyu_it/article/details/41693633 有关http与https的区别请看<浅谈http与https的区别( ...
- 使用OpenSSL生成证书并配置Https
1.密钥.证书请求.证书概要说明 在证书申请签发过程中,客户端涉及到密钥.证书请求.证书这几个概念.我们以申请证书的流程说明三者的关系.客户端(相对于CA)在申请证书的时候,大体上有三个步骤: 第一步 ...
- [转帖] ./demoCA/newcerts: No such file or directory openssl 生成证书时问题的解决.
接上面一篇blog 发现openssl 生成server.crt 时有问题. 找了一个网站处理了一下: http://blog.sina.com.cn/s/blog_49f8dc400100tznt. ...
- 使用openssl生成证书,并通过Nginx配置
创建服务器证书密钥文件 server.key openssl genrsa -des3 -out server.key 2048 这个时候会提示输入密码 这个密码要记住 openssl语法 opens ...
- 利用html模板生成Word文件(服务器端不需要安装Word)
利用html模板生成Word文件(服务器端不需要安装Word) 由于管理的原因,不能在服务器上安装Office相关组件,所以只能采用客户端读取Html模板,后台对模板中标记的字段数据替换并返回给客户端 ...
随机推荐
- django-模板之模板变量(二)
将views中的变量传递给html界面 book/views.py from django.views import View from django.shortcuts import render ...
- iOS 应用签名原理&重签名
在苹果的日常开发中,真机测试与打包等很多流程都会牵扯到各种证书,CertificateSigningRequest,p12等.但是很多相应的开发者并不理解iOS App应用签名的原理和流程.今天着重讲 ...
- 实战SpringCloud响应式微服务系列教程(第九章)使用Spring WebFlux构建响应式RESTful服务
本文为实战SpringCloud响应式微服务系列教程第九章,讲解使用Spring WebFlux构建响应式RESTful服务.建议没有之前基础的童鞋,先看之前的章节,章节目录放在文末. 从本节开始我们 ...
- SpringBoot中教你手把手配置 https
升级 https 记录 1.去阿里云购买证书(免费版),并提交审核资料 购买的证书 2.下载证书 下载证书 3.查看上图页面的第三步 JKS证书安装 4.在证书目录下执行阿里云提供的命令,密码都填 p ...
- Windows包管理器
Windows包管理器 Scoop 参考 安装命令 set-executionpolicy remotesigned -scope currentuser #用powershell执行 iex (ne ...
- 大厂面试经:说一下你们线上JVM是如何优化的?
JVM(Java虚拟机)简单来说就是运行Java代码的解释器,作为螺丝钉程序员JVM其实了解下就差不多啦,不懂JVM内部细节照样能写出优质的代码!但是一到造火箭.飞机的场景(面试)不懂JVM的你,会被 ...
- MapReduce任务提交源码分析
为了测试MapReduce提交的详细流程.需要在提交这一步打上断点: F7进入方法: 进入submit方法: 注意这个connect方法,它在连接谁呢?我们知道,Driver是作为客户端存在的,那么客 ...
- 运维自动化管理服务器 CheungSSH
CheungSSH 是一款中国人自主研发的Linux运维自动化管理服务器软件,后端使用 Python 语言+Django 的 Web 框架,前端使用 Bootstrap+Javascript+jQue ...
- 最新JetBrains PyCharm 使用教程--安装教程(一)
安装过程 Pycharm 激活码 license server选项里边输入:http://intellij.mandroid.cn/
- python——掌握sorted函数的用法
看本篇文章的前提是掌握 00函数的基本概念.01函数参数传递方式 可参考本人博客文章 sorted函数 是一个内建函数,接收一个可迭代对象,按照指定类型.指定顺序进行排序,特点是返回一个新的列表,不改 ...