openssl 订阅
在计算机网络上,OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上。 展开全文
在计算机网络上,OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上。
信息
软件名称
开放式安全套接层协议
更新时间
2017年10月2日
英文名
Open Secure Sockets Layer
软件平台
网络传输层
软件授权
开源
简    称
OpenSSL
openssl背景技术
SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。已经成为Internet上保密通讯的工业标准。SSL能使用户/服务器应用之间的通信不被攻击者窃听,并且始终对服务器进行认证,还可选择对用户进行认证。SSL协议要求建立在可靠的传输层协议(TCP)之上。SSL协议的优势在于它是与应用层协议独立无关的,高层的应用层协议(例如:HTTP,FTP,TELNET等)能透明地建立于SSL协议之上。SSL协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商及服务器认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证通信的私密性。
收起全文
精华内容
参与话题
问答
  • Openssl

    2017-09-11 22:18:29
    OpenSSL是开源项目一个强大的安全套接...三个组件:openssl: 多用途的命令行工具,包openssl libcrypto: 加密算法库,包openssl-libs libssl:加密模块应用库,实现了ssl及tls,包nss openssl命令: 配置文件:/e

    OpenSSL是开源项目一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。

    三个组件:

    openssl: 多用途的命令行工具,包openssl 
      libcrypto: 加密算法库,包openssl-libs 
       libssl:加密模块应用库,实现了ssl及tls,包nss 

    openssl命令:
    配置文件:/etc/pki/tls/openssl.cnf
    两种运行模式:交互模式和批处理模式
    openssl version:程序版本号
    标准命令、消息摘要命令、加密命令
    标准命令: enc, ca, req, …

    1、对称加密:
    工具: openssl enc, gpg
    算法:3des, aes, blowfish, twofish
    enc命令:
    帮助: man env
    openssl enc -[e/d] [-a] [-salt] -Cipher -in /PATH/TO/SOMEFILE -out /PATH/TO/SOMEFILE

                    -e:加密
                    -d:解密
                    -a:将疏浚变成base64编码
                  -salt:添加随机数

       -Cipher:加密的算法
    

    加密:
    openssl enc -e -des3 -a -salt -in testfile -out testfile.cipher
    解密:
    openssl enc -d -des3 -a -salt –in testfile.cipher -out testfile
    2.单向加密 :
    工具:md5sum, sha1sum, sha224sum,sha256sum… openssl dgst
    dgst命令:
    帮助:man dgst
    openssl dgst -md5 [-hex默认] /PATH/SOMEFILE
    openssl dgst -md5 testfile
    md5sum /PATH/TO/SOMEFILE

    生成用户密码:
    passwd命令:
    帮助:man sslpasswd
    openssl passwd -1 -salt SALT(最多8位)
    openssl passwd -1 –salt centos

    生成随机数:
    帮助:man sslrand
    openssl rand -base64|-hex
    NUM NUM: 表示字节数;-hex时,每个字符为十六进制,相 当于4位二进制,出现的字符数为NUM*2
    公钥加密:
    算法:RSA, ELGamal
    工具:gpg, openssl rsautl(man rsautl)
    数字签名:
    算法:RSA, DSA, ELGamal
    密钥交换:
    算法:dh
    DSA: Digital Signature Algorithm
    DSS:Digital Signature Standard
    RSA:
    生成密钥对:man genrsa
    生成私钥
    openssl genrsa -out /PATH/TO/PRIVATEKEY.FILE NUM_BITS
    (umask 077; openssl genrsa –out test.key –des 2048)
    从私钥中提取公钥
    openssl rsa -in PRIVATEKEYFILE –pubout –out PUBLICKEYFILE
    Openssl rsa –in test.key –pubout –out test.key.pub


    如何创建CA和申请证书

    创建私有CA:
    openssl的配置文件:/etc/pki/tls/openssl.cnf
    三种策略:匹配、支持和可选
    匹配指要求申请填写的信息跟CA设置信息必须一致,支持指必 须填写这项申请信息,可选指可有可无

    在服务器主机生成证书

    1、 创建所需要的文件

       touch /etc/pki/CA/index.txt 生成证书索引数据库文件   
       echo 01 > /etc/pki/CA/serial 指定第一个颁发证书的序列号     

    2、 生成私钥

    cd /etc/pki/CA/   
    (umask 066; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048))    

    3、 生成自签名证书

     openssl req -new -x509 –key /etc/pki/CA/private/cakey.pem -days 7300 -out /etc/pki/CA/cacert.pem

    -new: 生成新证书签署请求
    -x509: 专用于CA生成自签证书
    -key: 生成请求时用到的私钥文件
    -days n:证书的有效期限
    -out /PATH/TO/SOMECERTFILE: 证书的保存路径

    在客户端生成证书签署请求

    • 给web服务器生成私钥
     (umask 066; openssl genrsa -out /etc/pki/tls/private/test.key 2048) 
    • 生成证书申请文件
    openssl req -new -key /etc/pki/tls/private/test.key -days 365 -out etc/pki/tls/test.csr    
    • 将证书请求文件传输给CA
      scp命令

    • CA签署证书,并将证书颁发给请求者

    openssl ca -in /tmp/test.csrout /etc/pki/CA/certs/test.crt -days 365   

    注意:默认国家,省,公司名称三项必须和CA一致

    证书管理

    查看证书中的信息:

    openssl x509 -in /PATH/FROM/CERT_FILE -noout -text|issuer|subject|serial|dates    
    openssl ca -status SERIAL 查看指定编号的证书状态    

    吊销证书
    在客户端获取要吊销的证书的

     serial openssl x509 -in /PATH/FROM/CERT_FILE -noout -serial -subject   

    在CA上,根据客户提交的serial与subject信息,对比检验是 否与index.txt文件中的信息一致,吊销证书:

    openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem   

    指定第一个吊销证书的编号
    注意:第一次更新证书吊销列表前,才需要执行 echo 01 > /etc/pki/CA/crlnumber
    更新证书吊销列表

    openssl ca -gencrl -out /etc/pki/CA/crl/crl.pem

    查看crl文件:

     openssl crl -in /etc/pki/CA/crl/crl.pem -noout -text
    展开全文
  • OpenSSL

    千次阅读 2014-03-07 00:34:40
    本节将对OpenSSL的结构、功能以及在Windows平台、Linux平台下的编译安装做一个简单的介绍。 OpenSSL---简介 OpenSSL是一个功能丰富且自包含的开源安全工具箱。它提供的主要功能有:SSL协议实现(包括SSLv2、SSLv3和...

    本节将对OpenSSL的结构、功能以及在Windows平台、Linux平台下的编译安装做一个简单的介绍。

    OpenSSL---简介

    OpenSSL是一个功能丰富且自包含的开源安全工具箱。它提供的主要功能有:SSL协议实现(包括SSLv2SSLv3TLSv1)、大量软算法(对称/非对称/摘要)、大数运算、非对称算法密钥生成、ASN.1编解码库、证书请求(PKCS10)编解码、数字证书编解码、CRL编解码、OCSP协议、数字证书验证、PKCS7标准实现和PKCS12个人数字证书格式实现等功能。

    OpenSSL采用C语言作为开发语言,这使得它具有优秀的跨平台性能。OpenSSL支持LinuxUNIXwindowsMac等平台。

    OpenSSL---结构

    第一次从openssl的官方网站下载了OPenSSL压缩包并解压到硬盘时,面对OpenSSL目录里面的众多目录和文件,感觉是一头雾水,不知从何下手。本节将对OpenSSL的这些目录结构做个大概介绍,对于了解OpenSSL做个基础。

    OpenSSL---总体结构

    Openssl软件包大体可以分为3个模块:密码算法库、SSL协议库以及应用程序。

    Openssl的根目录下有许多文件,这些文件包含Openssl各个平台下的编译安装的说明文档、编译安装的配置文件以及Openssl本身版本变化的说明文档。例如以INSTALL*开头的都是基于不同平台的安装编译说明文件。格式为:INSTALL.平台。平台说明见图1-1

    1-1 Openssl安装说明文件和相应的平台

    Openssl中有一些目录不是很重要。例如MacOSNetwaremsos2VMS这几个目录,是不同的平台编译时候的环境变量配置文件。在安装编译完成后,这几个目录就失效了。Bugscertsperlshlibtimestoolsutils目录是一些辅助的目录,对实际学习OpenSSL是没有多大作用的,所以不用详细去研究它们。

    Crypto目录是OpenSSL所有加密算法源码文件和一些PKI相关标准源码存放的目录(如X509源码文件)。包含了OpenSSL密码算法库的所有内容。是OpenSSL中最重要的目录。

    SSL目录存放了SSL协议各个版本的实现源码(SSL2.0SSL3.0)以及TLS1.0的协议源码文件。包含了OpenSSL协议库的所有内容。

    Doc目录是OpenSSL使用的说明文档存放的目录。包含三个部分:应用程序说明文档、加密算法库API说明文档以及SSL协议API说明文档。

    APPs目录存放了OpenSSL所有应用程序的源代码文件。即OpenSSL中的各个命令的实现代码。

    Demos目录OPenSSL应用的实例。主要由一些openSSL的爱好者写的应用实例的例子,在刚开始学习之前,可以研究研究。

    Include目录存放了使用OpenSSL的库进行编程的时候可能需要使用到的一些头文件。

    test目录存放了OpenSSL自身功能测试程序的源码文件。

    如果在windows平台编译成功后,会增加三个目录:inc32outdll32以及tmp32dllinc32存放windows平台下使用OpenSSL进行编程要包含的头文件;outdll32存放了OpenSSL编译成功后的可执行应用程序、链接库LIB文件和动态DLL文件;tmp32dll则是在编译过程中存放OBJ等临时文件的目录;

    OpenSSL---算法目录

    OpenSSL算法目录Crypto目录包含了OpenSSL密码算法库的所有源代码实现文件,是OpenSSL中最重要的目录之一。OpenSSL的密码算法库包含了OpenSSL中所有密码算法、密钥管理和证书管理相关标准的实现。Crypto目录不仅仅包含了密码算法和标准的实现,还包含了OpenSSL本身的一些相关功能文件,例如BIOEVP等;

    1-2Crypto子目录)列出了Crypto目录主要子目录的功能以及简单说明

    Crypto根目录下还有一些文件,也是密码算法库的组成部分之一,由于不是很重要的部分,这里就不在一一介绍了。对OpenSSL提供的密码算法大概总结了一下:对称加密算法8种,非对称加密算法4中,信息摘要算法6种。

    OpenSSL---文档目录

    简单来说,OpenSSL文档目录doc提供的文档并不全面,并没有随着版本的更新而更新,但对刚刚接触OpenSSL的偏移来说,是个值得留念的地方,能够解决很多问题。

    OpenSSL的文档使用Perl文档格式来保存,为.pod文件。在windows下,阅读文档可能有点困难,因为用写字板或者其它阅读器打开这些文档会显得格式非常凌乱。可以使用Perl工具pod2text或者pod2html命令将文档转换成txt文本格式或者html格式以方便阅读。

    OpenSSL的文档分为三部分:应用程序说明文档(apps目录)、密码算法库API文档(crypto目录)以及SSL协议库API目录(ssl目录)。应用程序说明文档目录包含了大部分应用程序的使用(即命令行)和参数说明,并有相关的实例说明。密码算法库API文档包含了部分的密码算法库API说明(不全面)。SSL协议库目录包含了实现SSL协议以及TLS协议的大部分API的说明。OpenSSL目录下还有一个HOWTO目录,主要内容是证书的一些说明。

    OpenSSL的功能

    作为一个基于密码学的安全开发包,OpenSSL提供的功能相当强大和全面,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。

    密码算法库

    OpenSSL中密码算法库的功能非常强大,它实现了现在密码学大部分主流的密码算法和标准,主要包括公开密钥(非对称)算法、对称加密算法、信息摘要算法、X509数字证书标准、PKCS12个人信息交换语法标准、PKCS#7加密消息语法标准、OCSP在线证书状态查询协议、CRL证书吊销列表等标准。OpenSSL还提供了Engine机制,利用Engine可以将加密卡、key等外部硬件算法模块无缝集成到OpenSSL中。密码算法库在Windows平台下编译后其库文件为libeay32.lib(如果编译成动态库则为ibeay32.dll),在linux编译后其库文件名称为libcrypto.a

    对称加密算法

    OpenSSL一共提供了8种对称加密算法,其中7种是分组加密算法,仅有的一种流加密算法是RC4。这7种分组加密算法分别是AESDESBlowfishCASTIDEARC2RC5,都支持电子密码本模式(ECB)、加密分组链接模式(CBC)、加密反馈模式(CFB)和输出反馈模式(OFB)四种常用的分组密码加密模式。其中,AES使用的加密反馈模式(CFB)和输出反馈模式(OFB)分组长度是128位,其它算法使用的则是64位。事实上,DES算法里面不仅仅是常用的DES算法,还支持三个密钥和两个密钥3DES算法。

    虽然每种对称加密算法都定义了自己的接口函数,但是在OpenSSL中还使用EVP封装了所有的对称加密算法,使得各种对称加密算法能够是用统一的API接口EVP_EncryptEVP_Decrypt进行数据的加密和解密,增加了代码的可重用性。

    非对称加密算法

    OpenSSL一共实现了4种非对称加密算法,包括DH算法、RSA算法、DSA算法和椭圆曲线算法(EC)。DH算法一般用户密钥交换。RSA算法既可以用于密钥交换,也可以用于数字签名,当然,如果你能够忍受其缓慢的速度,那么也可以用于数据加密。DSA算法则一般只用于数字签名。EC算法既可以用于数字签名(即椭圆曲线数字签名算法ECDSA),也可用于密码交换(椭圆曲线密钥交换算法ECDH)

    跟对称加密算法一样,OpenSSL也使用EVP封装了不同功能的非对称加密算法,提供了统一的API接口。如果使用非对称加密算法来进行数字签名,则使用EVP_SignEVP_Verify进行数字签名和验证;如果使用非对称加密算法来进行密钥加密和密钥交换,则使用EVP_SealEVP_Open进行加密和解密。

    信息摘要算法

    OpenSSL实现了6种信息摘要算法,分别是MD2MD4MD5MDC2SHASHA1)和RIPEMDSHA算法事实上包括了SHASHA1两种信息摘要算法,此外,OpenSSL还实现了DSS标准中规定的两种信息摘要算法DSSDSS1

    同上面两种算法一样,OpenSSL也使用EVP封装了信息摘要算法,它的接口是EVP_Digest。与上面不同的是,信息摘要算法是不可逆的。

    密钥和证书管理

    密钥和证书管理是PKI的一个重要组成部分,OpenSSL为之提供了丰富的功能,支持多种标准。

    首先,OpenSSL实现了ASN.1的证书和密钥相关标准,提供了对证书、公钥、私钥、证书请求以及CRL等数据对象的DERPEMBASE64的编解码功能。OpenSSL提供了产生各种公开密钥对和对称密钥的方法、函数和应用程序,同时提供了对公钥和私钥的DER编解码功能。并实现了私钥的PKCS#12PKCS#8的编解码功能。OpenSSL在标准中提供了对私钥的加密保护功能,使得密钥可以安全地进行存储和分发。

    在此基础上,OpenSSL实现了对证书的X.509标准编解码、PKCS#12格式的编解码以及PKCS#7的编解码功能。并提供了一种文本数据库,支持证书的管理功能,包括证书密钥产生、请求产生、证书签发、吊销和验证等功能。

    事实上,OpenSSL提供的CA应用程序就是一个小型的证书管理中心(CA),实现了证书签发的整个流程和证书管理的大部分机制。

    SSL协议

    SSL协议完全实现和封装了SSL协议的3个版本(SSL1.0SSL2.0 SSL3.0)和TLS协议TLS1.0

    SSL协议库是基于密码算法库的基础上实现的。利用该库,可以建立一个SSL通信服务器和客户端。该部分在Linux下编译后,文件名为libssl.a;在Windows下,则为ssleay.lib。(如果编译成动态库则为ssleay32.dll。)

    虽然已经有众多的软件实现了OpenSSL的功能,但是OpenSSL里面实现的SSL协议能够让我们对SSL协议有一个更加清楚的认识,因为至少存在两点:一是OpenSSL实现的SSL协议是开放源代码的,我们可以追究SSL协议实现的每一个细节;二是OpenSSL实现的SSL协议是纯粹的SSL协议,没有跟其它协议(如HTTP)协议结合在一起,澄清了SSL协议的本来面目。

    应用程序

    OpenSSL的应用程序已经成为了OpenSSL重要的一个组成部分,其重要性恐怕是OpenSSL的开发者开始没有想到的。现在OpenSSL的应用中,很多都是基于OpenSSL的应用程序而不是其API的,如OpenCA,就是完全使用OpenSSL的应用程序实现的。OpenSSL的应用程序是基于OpenSSL的密码算法库和SSL协议库写成的,所以也是一些非常好的OpenSSLAPI使用范例,读懂所有这些范例,你对OpenSSLAPI使用了解就比较全面了,当然,这也是一项锻炼你的意志力的工作。

    OpenSSL的应用程序提供了相对全面的功能,在相当多的人看来,OpenSSL已经为自己做好了一切,不需要再做更多的开发工作了,所以,他们也把这些应用程序成为OpenSSL的指令。OpenSSL的应用程序主要包括密钥生成、证书管理、格式转换、数据加密和签名、SSL测试以及其它辅助配置功能。图1-3OpenSSL常用的命令表。

    1-3 OpenSSL常用命令表

    利用上面的命令可以完成很多操作。

    Engine机制

    Engine机制的出现是在OpenSSL0.9.6版的事情,开始的时候是将普通版本跟支持Engine的版本分开的,到了OpenSSL0.9.7版,Engine机制集成到了OpenSSL的内核中,成为了OpenSSL不可缺少的一部分。

     Engine机制目的是为了使OpenSSL能够透明地使用第三方提供的软件加密库或者硬件加密设备进行加密。OpenSSLEngine机制成功地达到了这个目的,这使得OpenSSL已经不仅仅使一个加密库,而是提供了一个通用地加密接口,能够与绝大部分加密库或者加密设备协调工作。当然,要使特定加密库或加密设备更OpenSSL协调工作,需要写少量的接口代码,但是这样的工作量并不大,虽然还是需要一点密码学的知识。Engine机制的功能跟Windows提供的CSP功能目标是基本相同的。

    目前,OpenSSL0.9.7及其以上的版本支持的内嵌第三方加密设备有8种,包括:CryptoSwiftnCipherAtallaNuronUBSECAepSureWare以及IBM 4758 CCA的硬件加密设备。现在还出现了支持PKCS#11接口的Engine接口,支持微软CryptoAPI的接口也有人进行开发。当然,所有上述Engine接口支持不一定很全面,比如,可能支持其中一两种公开密钥算法。图1-4OpenSSL-0.9.7及其以上版本支持的硬件及其对应的简要描述名称,这个简要描述名称在很多时候是要使用的,如编程或执行命令的时候,简要密钥名称是大小写敏感的,目前一般都是采用小写字符。

    1-4 OpenSSL-0.9.7及其以上版本支持的硬件及其对应的简要描述名称

    辅助功能

    前面介绍了OpenSSL的大部分功能,如果你第一次接触OpenSSL而又对密码学技术有所了解,这些功能相信会让你激动不已,如果你愿意,OpenSSL其实还有一些能让你高兴的地方。

    首先最值的一提的就是OpenSSLBIO机制。BIO机制是OpenSSL提供的一种高层IO接口,该接口封装了几乎所有类型的IO接口,如内存访问、文件访问以及Socket等。这使得代码的重用性大幅度提高,OpenSSL提供API的复杂性也降低了很多。前面介绍的EVP封装也提高了OpenSSL代码的可重用性。

    从前面应用程序的介绍就可以得知,OpenSSL对于随机数的生成和管理也提供了一整套的解决方法和支持API函数。随机数的好坏是决定一个密钥是否安全的重要前提,OpenSSL给我提供了这么一个解决方案,虽然不一定在所有的应用中都能令人满意。

    OpenSSL还提供了其它的一些辅助功能,如从口令生成密钥的API,证书签发和管理中的配置文件机制等等。如果你有足够的耐心,将会在深入使用OpenSSL的过程慢慢发现很多这样的小功能,让你不断有新的惊喜。

    OpenSSL的优缺点

    OpenSSL具有以下优点:

    Ø  采用C语言开发,支持多种操作系统,可移植性好。

    Ø  功能全面,支持大部分主流密码算法、相关标准协议和SSL协议。

    Ø  开放源代码,应用者能很好的了解其算法的实现过程。

    Ø  有应用程序(即OpenSSL指令),既可以直接使用,也可以进行二次开发。

    Ø  免费使用,能够用于商业和非商业。

    当然,OpenSSL也存在以下的缺点:

    Ø  代码采用C语言开发,结构复杂庞大,向剥离部分功能比较困难。

    Ø  文档不全面,增加了使用的困难性。

    展开全文
  • openssl命令详解 常规方式 生成私钥(key文件) openssl genrsa -out client.key 4096 生成签名请求(csr文件) openssl req -new -key client.key -out client.csr 签发证书 openssl x509 -req -days 365 -in...

    参考资料

    openssl命令详解


    常规方式

    • 生成私钥(key文件)
      openssl genrsa -out client.key 4096
      在这里插入图片描述
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gikNX2aZ-1596539441689)(evernotecid://90B54479-F8FA-4F06-9F90-73E6593C6866/appyinxiangcom/27458002/ENResource/p74)]

    • 生成签名请求(csr文件)
      openssl req -new -key client.key -out client.csr
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lPkpDIT9-1596539441690)(evernotecid://90B54479-F8FA-4F06-9F90-73E6593C6866/appyinxiangcom/27458002/ENResource/p75)]

    • 签发证书
      openssl x509 -req -days 365 -in client.csr -signkey client.key -out client.crt
      在这里插入图片描述


    一键生成自签名证书

    openssl req -new -x509 -newkey rsa:4096 -keyout test.key -out test.crt
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jt7UJ692-1596539441692)(evernotecid://90B54479-F8FA-4F06-9F90-73E6593C6866/appyinxiangcom/27458002/ENResource/p76)]

    tips
    输入的密码必须大于等于4位。
    Common Name可以输入:*.yourdomain.com,这种方式生成通配符域名证书。
    证书文件crt中存储的是证书信息与公钥信息,key文件存储的是私钥信息,csr是申请证书所需要的中间文件。

    展开全文
  • openssl rsa code

    千次下载 热门讨论 2007-11-15 18:46:42
    【版权声明】 本openssl的VC软件包由王志海(DragonKing)根据openssl整理提供,Eric Young's拥有对所有源代码的最终版权,一切应用应该遵照openssl的声明。该版本为openssl-0.9.6h 欢迎联系本人或提意见:...
  • Windows 下openssl安装与配置

    万次阅读 多人点赞 2013-02-18 19:03:17
    网上方法很多,大部分是针对32位机的,自己的电脑因为是win7,64位,摸索了很久才安装成功.   环境 WIN7, 64位, vs2005   下载ActivePerl ...配置过程中需要生成一些mak文件,这些生成代码用perl脚本生成,所以...

    网上方法很多,大部分是针对32位机的,自己的电脑因为是win7,64位,摸索了很久才安装成功.

     

    环境

    WIN7, 64位, vs2005

     

    下载ActivePerl

    配置过程中需要生成一些mak文件,这些生成代码用perl脚本生成,所以要安装一个ActivePerl.

     

    网址: http://www.activestate.com/activeperl/

     

    我下载了两个版本:

     

    ActivePerl-5.16.2.1602-MSWin32-x64-296513.msi
    ActivePerl-5.16.2.1602-MSWin32-x86-296513.msi

     

     

     

     

    装的是第一个版本,64位的。

     

    下载openssl

    网址 http://www.openssl.org/

    我用的是openssl-0.9.8g版本,解压到c盘根目录。

     

    安装步骤:

    (可以参照openssl目录下的install.win32)

    1打开命令行

    进入openssl源码目录。
    cd c:/openssl-0.9.8.g
    执行perl Configure VC-WIN32

     

    2在c:/openssl-0.9.8.g目录运行ms\do_ms

    另外两种方式如果使用也必须保证本机有编译器才能使用。

    :ms\do_masm(默认vc自带的编译器;也也以自己下载安装)

    :ms\do_nasm(需要自己下载)

     

    3 DOS窗口转到C:\Program Files\Microsoft Visual Studio \VC98\bin目录(就是VC或VS对应的目录,你电脑可能有差异)

    执行vcvars32.bat以配置环境变量.成功后显示如下:

     

     

    4、跳到openssl目录下,编译动态链接库

    cd c:/openssl-0.9.8.g
    执行 >nmake -f ms\ntdll.mak

     

    如果编译成功,输出在out32dll目录下:包括可执行文件、两个dll和两个lib文件: libeay32.dll, libeay32.lib, ssleay32.dll,ssleay32.lib

     

    如果遇到"ml不是内部或外部命令"这样的错误,找到你电脑里的ml.exe文件拷贝到当前目录重新执行即可。

     

    这里要特别强调一下,这种方法生成的是动库链接库, 也就是我们的应用工程如果要使用openssl, 编译时要指定

    lib文件,程序发布时要用到相应的dll. 我遇到过一种情况是, 在win7下发布的使用openssl的程序无法运行,弹出

    “运行时初始化相关的错误”, 但是在xp下编译,发布,在其它win7和winXP上都能运行. 估计是win7下没配置好,导致只能本机编译,运行,无法发布.

     

    如果要把openssl编译成静态的库,只要把上面的ntdll.mak换成nt.mak就可以了,我试着用了一个静态的库,发现要解决很多编译时的兼容,冲突问题,建议不要使用静态方法.

     

    下面来测试一下。

    建立工程

    打开vs2005,

    在additionalinclude directories加上

    "C:\openssl-0.9.8g\include"

    这个目录.

     

    在additionallibrary directories加上

    "C:\openssl-0.9.8g\out32dll"

    这个目录

     

    代码类似下面这样:

     

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<time.h>
    #include<openssl/bn.h>
    #include<openssl/ec.h>
    #include<openssl/rand.h>
    #include<openssl/err.h>
    #include<openssl/ecdsa.h>
    #include<openssl/ecdh.h>
    #include"sm2.h"
     
    #pragmacomment(lib,"libeay32.lib")


    编译不会有问题.同样在VC6下,把上面两个目录包含进来,编译也通过.

     

     

     

    展开全文
  • linux上安装Openssl步骤详解

    万次阅读 多人点赞 2017-10-12 11:33:09
    1,查看原有系统是否已安装Opensslopenssl version -a系统已经安装了openssl,我们先安装新的版本,然后将环境配置成最新的版本。2,从openssl官网下载最新的稳定版本,https://www.openssl.org/source/ 当前的稳定...
  • OpenSSL的官网上可以看到三个分支,分别是openssl-、openssl-fips-、openssl-fips-ecp-。这三者的区别如下。 分支 内容差异 openssl- 完整版的OpenSSL openssl-...
  • 1.安装Perl(非必须) 下载地址:https://www.activestate.com/activeperl/downloads 因为网上的教程大多是安装Perl的,所以就安装了,想用这种方式的参考这个吧... 我在安装完ActivePerl-5.24.3.2404-M...
  • OpenSSL工具

    千次下载 热门讨论 2014-08-23 12:38:46
    强大的OpenSSL工具,关于使用它来生成RSA密钥对可参见博文:http://blog.csdn.net/bbld_/article/details/38777491
  • 国密SM2算法基于Openssl实现

    千次下载 热门讨论 2011-11-23 18:54:17
    基于Openssl算法库实现的SM2算法。实现数字签名和密钥交换,公钥加密没有实现。全部源代码,需要Openssl库支持,VC工程。 KDF使用标准HASH算法,没有使用SM3。 可参考作者的SM3算法实现KDF。 ECC曲线使用SM2算法建议...
  • openssl java 双认证 ssh

    2014-07-25 13:50:24
    1. 我使用openssl创建了一个测试双认证服务。当然是自己创建CA认证服务。 2. 生成客户端认证所需要的文件命令如下: ->openssl genrsa -out test_key.pem 1024 ->openssl req -new -key test_key.pem -out test_...
  • 令人作呕的OpenSSL

    万次阅读 多人点赞 2014-04-26 20:00:02
    OpenSSL心脏出血之后,我相信很多人都出了血,并且流了泪...网上瞬间出现了大量吐嘈OpenSSL的文章或段子,仿佛内心的窝火一瞬间被释放了出来,跟着这场疯闹,我也吐一下嘈,以雪这些年被OpenSSL蹂躏之辱,也许可以...
  • 最近在用openssl写毕设,要用openssl做客户端和服务端的双向认证。但现在的问题是,就算客户端设置了 SSL_CTX_set_verify(ssl_ctx,SSL_VERTIFY_FAIL_IF_NO_PEER_CERT,NULL)客户端还是不能发证书过来, 测试的时候...
  • openssl官网上下载了openssl的压缩包,解压后make, make test, make install都成功了。然后写了一个简单的程序: #include #include #include <openssl/pem.h> int main() { RSA *key; key = RSA_...
  • checking openssl/opensslv.h usability... yes checking openssl/opensslv.h presence... yes checking for openssl/opensslv.h... yes checking OpenSSL header version... 1010104f (OpenSSL 1.1.1d 10 Sep ...
  • Windows 下编译 OpenSSL

    万次阅读 多人点赞 2016-06-13 16:12:33
    简述 ...对于一般的开发人员而言,在 Win32 OpenSSL 上下载已经编译好的 OpenSSL 库是省力省事的好办法。对于高级的开发用户,可能需要适当的修改或者裁剪 OpenSSL,那么编译它就成为了一个关键问题
  • Qt 之 OpenSSL

    万次阅读 2016-06-08 10:31:06
    更多参考下载安装进入Win32 OpenSSL下载页面,选择适合自己的版本进行下载。下载完成之后进行安装,我选择的目录为D:\Program Files\OpenSSL-Win32。进入安装目录,可以看到主要包含以下文件夹:l
  • $res = openssl_pkey_new(); @openssl_pkey_export($res,$pri); @$d= openssl_pkey_get_details($res); $pub = $d['key']; var_dump($pub); //为什么会输出空? $res = openssl_pkey_get_private($pri); if (@...
  • 解决1:./config no-asm shared --prefix=/usr/local/arm-openssl --host=arm-xilinx-linux-gnueabi 解决4:CC=arm-xilinx-linux-gnueabi-gcc ./config no-asm shared --prefix=/usr/local/arm-openssl 2、修改...
  • OpenSSL相关漏洞

    千次阅读 2019-05-31 14:09:48
    OpenSSL CCS注入漏洞(CVE-2014-0224) OpenSSL FREAK Attack漏洞(CVE-2015-0204) TLS/SSL协议RC4算法漏洞(CVE-2013-2566) SSLv3 POODLE攻击信息泄露漏洞(CVE-2014-3566) 关于SSL相关漏洞在线检测网站:SSL...
  • /usr/bin/ld: /opt/wifi/tool/openssl/lib/libcrypto.a(ex_data.o): Relocations in generic ELF (EM: 40) /usr/bin/ld: /opt/wifi/tool/openssl/lib/libcrypto.a(ex_data.o): Relocations in generic ELF (EM: 40)...
  • Windows安装使用Openssl

    万次阅读 多人点赞 2018-07-03 16:48:25
    1、什么是openssl 2、下载安装 三方下载地址
  • linux升级OpenSSL

    千次阅读 2016-04-15 12:58:07
    1、当前系统版本 -sh-4.1$ cat /etc/redhat-release CentOS release 6.5 (Final) -sh-4.1$ uname -m x86_64 -sh-4.1$ uname -r 2.6.32-431.17.1.el6.x86_64 2、SSL版本信息 ...OpenSSL 1.0.1e-fips 11
  • 采用 OpenSSL.crypto 模块进行签名 签名的主要部分是: ``` from OpenSSL.crypto import load_privatekey,FILETYPE_PEM,sign,verify def tosign(data,private_key): key = load_privatekey...
  • 交叉编译openssl

    千次阅读 2014-04-07 19:07:09
    1.wget ...
  • Openssl证书管理

    千次阅读 2014-04-11 11:03:27
    1.1 为CA创建一个RSA私钥1.2 python编程实现Demon1.3 为客户创建一个RSA私钥,并使用CA证书来对其签署1.4 撤销一个客户证书1.5 下面是收集整理的资料1.6 openssl.cnf 解读 2 一份原创参考资料3 参考资料4...

空空如也

1 2 3 4 5 ... 20
收藏数 55,901
精华内容 22,360
关键字:

openssl