温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

互联网安全之-------openssl

发布时间:2020-06-01 19:30:09 阅读:436 作者:q980916297 栏目:安全技术
亿速云SSL证书,防劫持篡改、防监听窃取、提升搜索排名 点击了解>>

在互联网通信中,比如QQ、MSN等等,如果我们进行交谈的内容没有被加密,这样的话别人都可以随访问了,这是不合适的,所有我们就要对我们通信的内容进行加密,然后再进行通信就相对比较安全了

加密类型

加密类型原理常用的算法优点缺点
对称加密双方使用同一种加密算法对数据进行加密解密

DES, 3DES, AES

加密速度快,适合对大量数据进行加密,可以保证数据的机密性
   双方采用相同加密算法,这样无法保证数据的完整性,如果要加密的数据多的话,对秘钥无法有效的管理
非对称加密

身份验证:私钥加密,公钥解密

数据发送:公钥加密,私钥解密

RSA

DSS

可以保证数据的可用性,和机密性加密速度慢,要用的秘钥相当长
单项加密直接利用加密算法对数据进行加密,只能加密不能解密

md5,sha1

,sha256,

sha512

可以保证数据的完整性不可解密

   那么一个完整的数据发送是怎么样一个过程呢?

自己的公钥公布出去,但是别人在获得的时候,怎么能确保这公钥就是公布者的呢?

    所以简单的公钥分发机制已经不能保证公钥来源合法性了,于是就有了分布式分发机制,最常见的就是数字证书了

数字证书

    我们为什么要用到数字证书呢?大家想象一下,我们要进行通信的时候,怎么去保证对方一定是我们想要进行交流的那个人呢?做数字签名?那么怎么保证这数字签名是合法的呢?这时候就需要第三方机构,分发一种大家都认可的数字证书,比如说×××,当我们看到对方的数字证书的时候,是不是就确定了对方的身份了?

  数字证书:x.509v3(常用的)

      版本号(version)

      序列号():证书本身在CA中惟一标识;

      签名算法标志              //  让使用者确定使用的哪种数据加密算法,以用来验证证书合法性

      发行者名称

      有效期:

      证书主体名称:(组织(主机),个人)

      证书主体公钥信息:

      发行商惟一标志

      证书主体的惟一标志

扩展:

      签名:

PKI(Public Key Infrastructure)它是一种规范,定义了一个CA所具有的的机构

要想自建CA的话,我们要借助一个工具,OpenSSL,

openssl由三部分组成,

  libcrypto:实现加密解密的工具,很多需要加密的程序都会调用这个库

  libssl :实现ssl功能的

  openssl :openssl的命令行工具

Openssl:常用的几个命令介绍

versinon 查看openssl的版本号

enc 加密

          -des3 指定加密算法为des

           -in    指定加密/解密文件

           -e     加密

           -d      解密

          -out 制定将加密或者解密过后的文件存放的位置

例如

                将一个文件加密的过程我们就用:

                 将加密过后的文件解密我们就使用:

 dgst

              -hex 以16禁止显示计算出的特征码

               -out 保存的文件  

      例:以md5的算法获取一个文件的特征码

speed  速度测试工具

                不带任何参数将每一种加密算法都测试一遍,指定加密算法的话,只测试指定的算法    

生成私钥:

    openssl  genrsa num  

    num  指定生成秘钥的位数,默认是512位的,必须为2的n次方位

 例如

对于私钥也是可以加密的

       注:我们的私钥虽然加密,但是也不能让人随意看,所以我们应该把私钥文件的权限改为只有自己才能看

生成公钥

注:公钥是从私钥中中提取出来的:

rsa

       -in  私钥所存放的位置

那如何申请证书呢

          -in   指定从哪个文件读取

例如:如何制作一个证书申请呢:

下面我们就来实现自建CA,制作证书申请,分发证书的过程:

自建CA:

# cd /etc/pki/CA/
1、为CA生成一个私钥:

[root@www CA]# (umask 077; openssl genrsa -out private/cakey.pem 2048)
Generating RSA private key, 2048 bit long modulus
...........................+++
.......+++
e is 65537 (0x10001)

2、生成自签证书:

[root@www CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650
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) [XX]:CN       //指定国家代码
State or Province Name (full name) []:Henan  //指定省份
Locality Name (eg, city) [Default City]:Zhengzhou   //制定城市
Organization Name (eg, company) [Default Company Ltd]:magedu  //指定组织名称
Organizational Unit Name (eg, section) []:Tech      //指定所在的部门
Common Name (eg, your name or your server's hostname) []:www.magelinux.org            //指定主机名
Email Address []:           //邮箱
[root@www CA]#
[root@www CA]# touch index.txt serial   //提供序列号文件
[root@www CA]# ls
cacert.pem  certs  crl  index.txt  newcerts  private  serial
[root@www CA]# echo 01 > serial

   这样的话我们自己的CA就创建好了,自签证书也好了,就可以拿着证工作了

3、签署证书:
# openssl ca -in /path/to/certreq.csr -out /path/to/certfile.crt(证书文件都以crt结尾) -days 365
是一个数字签名的过程

客户端

    生成私钥

[root@www ~]# mkdir /key
[root@www ~]# (umask 077; openssl genrsa -out /key/httpd.key 2048)
Generating RSA private key, 2048 bit long modulus
...............................................................................+++
.........................................................+++
e is 65537 (0x10001)
[root@www ~]#
[root@www ~]# openssl req -new -key /key/httpd.key -out /key/httpd.csr
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) [XX]:CN
State or Province Name (full name) []:Henan
Locality Name (eg, city) [Default City]:Zhengzhou
Organization Name (eg, company) [Default Company Ltd]:magedu
Organizational Unit Name (eg, section) []:Tech
Common Name (eg, your name or your server's hostname) []:www.magelinux.org
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
[root@www ~]#

签署证书:

[root@www ~]# openssl ca -in /key/httpd.csr -out /key/httpd1.csr -days 365
Using configuration from /etc/pki/tls/openssl.cnf
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 1 (0x1)
        Validity
            Not Before: Aug 27 06:15:30 2013 GMT
            Not After : Aug 27 06:15:30 2014 GMT
        Subject:
            countryName               = CN
            stateOrProvinceName       = Henan
            organizationName          = magedu
            organizationalUnitName    = Tech
            commonName                = www.magelinux.org
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            Netscape Comment:
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier:
                A7:B0:1A:A0:BB:FB:AE:36:18:D0:72:1B:C5:A7:7C:8E:D5:F5:01:1F
            X509v3 Authority Key Identifier:
                keyid:7E:76:06:55:50:E5:CB:EE:F0:A7:F0:2E:DB:4D:CD:2B:54:C6:AF:39
Certificate is to be certified until Aug 27 06:15:30 2014 GMT (365 days)
Sign the certificate? [y/n]:

专用客户端测试工具:

# openssl s_client -connect HOST:PORT -CAfile /path/to/cacertfile|-CApath /paht/to/cacertfiles_dir/ -ssl2|-ssl3|-tls1

   -connect 说明链接那个服务器的那个端口进行检测

   -CAfile 指定使用那个CA证书进行检测

   -CApath 指定那个路径下的CA证书,与-CAfile二选一使用

   -ssl2 指定协议

   -state 显示其状态

.key格式:私有的密钥
.crt格式:证书文件,certificate的缩写
.csr格式:证书签名请求(证书请求文件),含有公钥信息,certificate signing request的缩写
.crl格式:证书吊销列表,Certificate Revocation List的缩写
.pem格式:用于导出,导入证书时候的证书的格式,有证书开头,结尾的格式

亿速云提供多种品牌、不同类型SSL证书签发服务,包含:域名型、企业型、企业型专业版、增强型以及增强型专业版,单域名SSL证书300元/年起。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI

开发者交流群×