http 80
https 443 rsa 非对称128加密 安全类交易可以使用rsa 1024位加密算法
https是ssl(secure socket layer)的一种
单向 客户端单向访问服务器(安全)
根证书 rootCA
服务器认证 serverCA
双向认证
根证书
生成一对不对称密钥,公钥public key(加密) 和私钥 private key(解密),一个私钥对应多个公钥
用密钥产生请求,同时交给root机构
root机构进行签名
服务器认证
客户端认证
过程:客户端请求认证,取得证书,每次访问携带证书
md5 和sha指纹加密算法
使用openssl来签证书
1 下载安装文件
http://slproweb.com/products/Win32OpenSSL.html
2 安装完成后,设置环境变量
OPENSSL_CONF
D:\tools\OpenSSL-Win32\bin\openssl.cfg
path
D:\tools\OpenSSL-Win32\bin
3 生成根证书所用密钥
openssl genrsa -des3 -out ca.key 1024
示例
D:\tools\opensslca>openssl genrsa -des3 -out ca.key 1024
Loading 'screen' into random state - done
Generating RSA private key, 1024 bit long modulus
........++++++
.....................................................................++++++
e is 65537 (0x10001)
Enter pass phrase for ca.key: 输入密码
Verifying - Enter pass phrase for ca.key: 再次输入密码
去除ca密钥的口令
openssl rsa -in ca.key -out ca.key
D:\tools\opensslca>openssl rsa -in ca.key -out ca.key
Enter pass phrase for ca.key:
writing RSA key
生成rootCA
openssl req -new -x509 -key ca.key -out ca.crt -config D:\tools\OpenSSL-Win32\bin\openssl.cfg
国家:CN
省:SH
市:SH
公司名:yue
主机名:Nemo-20100613CG
D:\tools\opensslca>openssl req -new -x509 -key ca.key -out ca.crt -config D:\too
ls\OpenSSL-Win32\bin\openssl.cfg
Loading 'screen' into random state - done
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:SH
Locality Name (eg, city) []:SH
Organization Name (eg, company) [Internet Widgits Pty Ltd]:yue
Organizational Unit Name (eg, section) []:Nemo-20100613CG
Common Name (e.g. server FQDN or YOUR name) []:Nemo-20100613CG
Email Address []:zhenhuayue@sina.com
同时会在C:\WINDOWS\system32\drivers\etc\hosts文件中添加如下行:
127.0.0.1 cn.yue.com
将ROOT CA导入客户端的根级信任域,所有客户端都需要导入
internate 选项-->证书-->导入
生成web服务端的证书使用rootca签名aaaaaa
命令如下:
openssl genrsa -des3 -out server.key 1024
去除密码
openssl rsa -in server.key -out server.key
生成服务端证书签名:
openssl req -new -key server.key -out server.csr
使用rootCA 请求web服务器的证书,进行签名认证
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key
出现如下错误:
D:\tools\opensslca>openssl ca -in server.csr -out server.crt -cert ca.crt -keyfi
le ca.key
Using configuration from D:\tools\OpenSSL-Win32\bin\openssl.cfg
Loading 'screen' into random state - done
I am unable to access the ./demoCA/newcerts directory
./demoCA/newcerts: No such file or directory
解决方法:
md demoCA
cd demoCA
md newcerts
cd ..
@echo>index.txt
@echo>serial
@echo 01 >serial
重新生成Web服务器的server.crt证书:
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key
结果如下:
Using configuration from D:\tools\OpenSSL-Win32\bin\openssl.cfg
Loading 'screen' into random state - done
Check that the request matches the signature
Signature ok
Certificate Details:
Serial Number: 1 (0x1)
Validity
Not Before: Oct 27 10:51:48 2012 GMT
Not After : Oct 27 10:51:48 2013 GMT
Subject:
countryName = CN
stateOrProvinceName = SH
organizationName = yue
organizationalUnitName = Nemo-20100613CG
commonName = Nemo-20100613CG
emailAddress = zhenhuayue@sina.com
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
28:B4:50:30:E3:44:5C:51:76:F9:26:E6:FD:F9:C1:1C:84:79:9E:B1
X509v3 Authority Key Identifier:
keyid:3F:CE:E6:09:56:BD:5B:0F:09:22:0B:FA:3B:98:F2:0D:6B:39:1A:0
7
Certificate is to be certified until Oct 27 10:51:48 2013 GMT (365 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
分享到:
相关推荐
Go 学习笔记 第四版 雨痕 ⼆二〇⼀一四年末 下载:不定期更新,https://github.com/qyuhen/book。 联系:qyuhen@hotmail.com 2012-01-11 开始学习 Go。 2012-01-15 第⼀一版,基于 R60。 2012-03-29 升级到 1.0。 ...
【Java学习笔记Markdown版】是针对Java初学者和进阶者的一份详尽教程,以Markdown格式编写,便于阅读和整理。Markdown是一种轻量级的标记语言,它允许用户使用易读易写的纯文本格式编写文档,然后转换成结构化的HTML...
通过对文档标题、描述以及部分内容的分析,我们可以看出这是一份关于OpenWRT和LEDE系统的深入学习笔记,主要聚焦于环境搭建、源码获取与更新等方面。同时,还提供了丰富的参考资料,旨在帮助开发者深入了解并掌握这...
Java开发 - 尚硅谷JavaWeb学习笔记 - Part1: https://blog.csdn.net/qq_63317769/article/details/139883728 Java开发 - 尚硅谷JavaWeb学习笔记 - Part2: Java开发 - 尚硅谷JavaWeb学习笔记 - Part3: Java开发 ...
### HTTP与HTTPS学习笔记 #### 一、网络基础与TCP/IP协议族 ##### 1.1 TCP/IP协议族概述 为了更好地理解HTTP及其安全性增强版本HTTPS的工作原理,我们需要首先掌握TCP/IP协议族的基础知识。TCP/IP协议族是互联网...
**jQuery学习笔记(一)** 在深入探讨jQuery之前,我们首先要理解什么是jQuery。jQuery是一个高效、易用且功能丰富的JavaScript库,它简化了HTML文档遍历、事件处理、动画制作和Ajax交互等任务。由John Resig在2006...
Web 安全学习笔记为我们提供了一个全面的了解 Web 安全的机会,涵盖了基础知识、常见威胁、防御策略等方面的内容。这份笔记可以帮助我们更好地保护 Web 应用程序和用户数据免受非法访问和破坏。
### CCNA学习笔记知识点整理 #### 一、网络连接媒介 **1.1 RJ-45双绞线** - **特点**: 传输数字信号,适用于短距离传输。 - **优势**: 带宽大,最高可达1000Mbps。 - **劣势**: 传输距离较短,通常不超过100米。 ...
**谷歌地图API学习笔记** 谷歌地图API(Google Maps API)是一种强大的工具,允许开发者将谷歌地图集成到自己的网站或应用程序中,实现自定义地图、地理定位、路线规划等多种功能。这篇学习笔记主要涵盖以下几个...
**Nginx学习笔记概述** Nginx是一款高性能的HTTP和反向代理服务器,也是一款邮件代理服务器。它以其稳定性、高性能以及丰富的模块配置而受到广泛赞誉,常用于网站的负载均衡、静态文件处理和SSL加密等场景。本学习...
**Spring MVC 学习笔记 一 创建项目** 在IT领域,Spring MVC是Java Web开发中的一个强大框架,它简化了构建交互式Web应用程序的过程。本笔记将深入探讨如何创建一个基本的Spring MVC项目,让我们开始吧。 首先,...
【CAS学习笔记】 CAS(Central Authentication Service)是JA-SIG组织开发的一个开源的单点登录(Single Sign-On,简称SSO)系统,主要用于提供统一的身份验证服务。它允许用户通过一次登录,就能访问多个相互信任...
总的来说,这个学习笔记涵盖了Windows系统核心组件、C++组件开发技术以及网络通信安全的关键概念,是一份全面的IT技术学习资料。通过深入学习这些内容,你可以提升自己在Windows平台上的软件开发和网络安全能力。
### HCIA学习笔记知识点梳理 #### 一、企业网络架构介绍 - **大型网络基本架构**:主要包括核心层(Core Layer)、汇聚层(Aggregation Layer)以及接入层(Access Layer)。 - **核心层**:负责高速数据转发,通常位于...
### Android学习笔记 #### 1. Android概述 **1.1 Android的特性** - **应用框架**:Android提供了一个强大的应用框架,使得开发者能够轻松地重用基础组件和服务,简化了应用程序的开发流程。 - **Dalvik虚拟机**...
### JavaWeb 学习笔记知识点总结 #### 一、JavaWeb 概念及组成 - **定义**: JavaWeb 是一种基于 Java 技术构建 Web 应用的方式,它利用 Java 的强大功能来处理 HTTP 请求并生成动态网页内容。 - **组成部分**: - ...
狂神springcloud学习笔记加代码 笔记可以看:https://www.kuangstudy.com/bbs/1374942542566551554#header4 视频链接:https://www.bilibili.com/video/BV1jJ411S7xr
标题“github go 学习笔记”暗示了这是一个关于Go语言的学习资源,可能包含了作者在学习Go语言过程中的笔记、代码示例和理解。在GitHub上,用户经常分享他们的学习资料和项目,因此这个笔记很可能是通过一系列的提交...
这份"关于安卓开发的一些学习笔记"涵盖了初学者需要知道的基础概念、核心技术以及实践经验,旨在为刚接触安卓开发的人员提供指导。 首先,安卓开发的基础知识包括Java语言的学习。由于安卓应用主要基于Java语言编写...