`

https学习笔记一

阅读更多

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学习笔记第四版

    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版】是针对Java初学者和进阶者的一份详尽教程,以Markdown格式编写,便于阅读和整理。Markdown是一种轻量级的标记语言,它允许用户使用易读易写的纯文本格式编写文档,然后转换成结构化的HTML...

    openwrt,Lede深入学习笔记v2.0.pdf

    通过对文档标题、描述以及部分内容的分析,我们可以看出这是一份关于OpenWRT和LEDE系统的深入学习笔记,主要聚焦于环境搭建、源码获取与更新等方面。同时,还提供了丰富的参考资料,旨在帮助开发者深入了解并掌握这...

    配套学习资料:Java开发 - 尚硅谷JavaWeb学习笔记

    Java开发 - 尚硅谷JavaWeb学习笔记 - Part1: https://blog.csdn.net/qq_63317769/article/details/139883728 Java开发 - 尚硅谷JavaWeb学习笔记 - Part2: Java开发 - 尚硅谷JavaWeb学习笔记 - Part3: Java开发 ...

    HTTP于HTTPS学习笔记

    ### HTTP与HTTPS学习笔记 #### 一、网络基础与TCP/IP协议族 ##### 1.1 TCP/IP协议族概述 为了更好地理解HTTP及其安全性增强版本HTTPS的工作原理,我们需要首先掌握TCP/IP协议族的基础知识。TCP/IP协议族是互联网...

    jQuery学习笔记(一)

    **jQuery学习笔记(一)** 在深入探讨jQuery之前,我们首先要理解什么是jQuery。jQuery是一个高效、易用且功能丰富的JavaScript库,它简化了HTML文档遍历、事件处理、动画制作和Ajax交互等任务。由John Resig在2006...

    web安全学习笔记.pdf

    Web 安全学习笔记为我们提供了一个全面的了解 Web 安全的机会,涵盖了基础知识、常见威胁、防御策略等方面的内容。这份笔记可以帮助我们更好地保护 Web 应用程序和用户数据免受非法访问和破坏。

    CCNA学习笔记整理

    ### CCNA学习笔记知识点整理 #### 一、网络连接媒介 **1.1 RJ-45双绞线** - **特点**: 传输数字信号,适用于短距离传输。 - **优势**: 带宽大,最高可达1000Mbps。 - **劣势**: 传输距离较短,通常不超过100米。 ...

    google map api 学习笔记

    **谷歌地图API学习笔记** 谷歌地图API(Google Maps API)是一种强大的工具,允许开发者将谷歌地图集成到自己的网站或应用程序中,实现自定义地图、地理定位、路线规划等多种功能。这篇学习笔记主要涵盖以下几个...

    nginx学习笔记.zip

    **Nginx学习笔记概述** Nginx是一款高性能的HTTP和反向代理服务器,也是一款邮件代理服务器。它以其稳定性、高性能以及丰富的模块配置而受到广泛赞誉,常用于网站的负载均衡、静态文件处理和SSL加密等场景。本学习...

    Spring MVC 学习笔记 一 创建项目

    **Spring MVC 学习笔记 一 创建项目** 在IT领域,Spring MVC是Java Web开发中的一个强大框架,它简化了构建交互式Web应用程序的过程。本笔记将深入探讨如何创建一个基本的Spring MVC项目,让我们开始吧。 首先,...

    cas学习笔记学习笔记学习笔记

    【CAS学习笔记】 CAS(Central Authentication Service)是JA-SIG组织开发的一个开源的单点登录(Single Sign-On,简称SSO)系统,主要用于提供统一的身份验证服务。它允许用户通过一次登录,就能访问多个相互信任...

    windows shell、atl、https学习笔记

    总的来说,这个学习笔记涵盖了Windows系统核心组件、C++组件开发技术以及网络通信安全的关键概念,是一份全面的IT技术学习资料。通过深入学习这些内容,你可以提升自己在Windows平台上的软件开发和网络安全能力。

    学习笔记-问卷.docx

    ### HCIA学习笔记知识点梳理 #### 一、企业网络架构介绍 - **大型网络基本架构**:主要包括核心层(Core Layer)、汇聚层(Aggregation Layer)以及接入层(Access Layer)。 - **核心层**:负责高速数据转发,通常位于...

    Android学习笔记

    ### Android学习笔记 #### 1. Android概述 **1.1 Android的特性** - **应用框架**:Android提供了一个强大的应用框架,使得开发者能够轻松地重用基础组件和服务,简化了应用程序的开发流程。 - **Dalvik虚拟机**...

    javaweb 学习笔记

    ### JavaWeb 学习笔记知识点总结 #### 一、JavaWeb 概念及组成 - **定义**: JavaWeb 是一种基于 Java 技术构建 Web 应用的方式,它利用 Java 的强大功能来处理 HTTP 请求并生成动态网页内容。 - **组成部分**: - ...

    狂神springcloud学习笔记加代码

    狂神springcloud学习笔记加代码 笔记可以看:https://www.kuangstudy.com/bbs/1374942542566551554#header4 视频链接:https://www.bilibili.com/video/BV1jJ411S7xr

    github go 学习笔记

    标题“github go 学习笔记”暗示了这是一个关于Go语言的学习资源,可能包含了作者在学习Go语言过程中的笔记、代码示例和理解。在GitHub上,用户经常分享他们的学习资料和项目,因此这个笔记很可能是通过一系列的提交...

    关于安卓开发的一些学习笔记

    这份"关于安卓开发的一些学习笔记"涵盖了初学者需要知道的基础概念、核心技术以及实践经验,旨在为刚接触安卓开发的人员提供指导。 首先,安卓开发的基础知识包括Java语言的学习。由于安卓应用主要基于Java语言编写...

Global site tag (gtag.js) - Google Analytics