Skip to content

HTTPS #29

Description

@chengfengliu

安装openssl

1.安装ActivePerl
2.下载openssl
3.安装visual studio2017

4.开始菜单以管理员身份打开适用于VS 2017 的 x64 本机工具命令提示,进入下载解压好的openssl目录
perl configure VC-WIN32 no-asm --prefix=G:\openssl\openssl-1.0.q\openssl
这一步一般用来生成 Makefile,为下一步的编译做准备。将该软件安装在 G:\openssl\openssl-1.0.q\openssl 下面,执行文件就会安装在G:\openssl\openssl-1.0.q\openssl\bin。
5.ms\do_ms.bat
6.一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。
makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。可见,makefile都成为了一种在工程方面的编译方法。

编译生成OpenSSL动态库:nmake -f ms\ntdll.mak
安装OpenSSL动态库:nmake -f ms\ntdll.mak  install
安装OpenSSL静态库:nmake -f ms\nt.mak install
清除上次OpenSSL动态库的编译,以便重新编译:nmake -f ms\ntdll.mak clean
清除上次OpenSSL静态库的编译,以便重新编译:nmake -f ms\nt.mak clean

会出现nmake不是内部或外部命令,也不是可运行的程序的错误
这时要cmd下进入到E:\Visual Studio\IDE\VC\Auxiliary\Build下,执行vcvas32.bat自动为vs设置环境变量。

但是如果安装visual studio的时候没安装C++的桌面开发就找不到这个文件,可以去Visual Studio Installer安装。

原理

SSL握手

服务器发送CA证书到客户端,客户端提取公钥,并用公钥加密一个密钥,将消息发送给服务器
服务器用只有自己拥有的私钥解密得到密钥(RSA),这样服务器和客户端都保存着相同的密钥。这时密钥交换完毕。

客户端用密钥加密信息,服务器用密钥解密信息或者服务器加密信息客户端解密信息(对称加密)。
非对称加密道理一样。

node

openssl genrsa -out server-key.pem 1024  // 创建服务器1024位的私钥
openssl req -new -key server-key.pem -out server-csr.pem // 创建csr文件

以服务器的密钥和客户端自身的信息(国家、机构、域名、邮箱等)为输入,生成证书请求文件。其中服务器的公钥和服务器信息是明文保存在证书请求文件中的,而服务器私钥的作用是对服务器公钥以及服务器信息做签名,自身是不包括在证书请求中的。然后把证书请求文件发送给CA机构。
CA机构接收到服务器的证书请求文件后,首先校验其签名(公钥解密),然后审核服务器的信息,最后CA机构使用自己的私钥为证书请求文件签名,生成证书文件,下发给服务器。

openssl x509 -req -in server-csr.pem -signkey server-key.pem -out server-cert.pem
// x509生成自签名证书

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions