分享

Ubuntu安装OpenSSL

 株野 2017-03-24

一、OpenSSL简单介绍

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

SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。SSL能使用户/服务器应用之间的通信不被攻击者窃听,并且始终对服务器进行认证,还可选择对用户进行认证。SSL协议要求建立在可靠的传输层协议(TCP)之上。

通过OpenSSL提供FTP+SSL/TLS认证功能,并实现安全数据传输 http://www./Linux/2013-05/84986.htm

Linux下使用OpenSSL生成证书 http://www./Linux/2015-05/117034.htm

利用OpenSSL签署多域名证书 http://www./Linux/2014-10/108222.htm

在OpenSSL中添加自定义加密算法  http://www./Linux/2015-08/121749.htm

二、安装相应软件包

$ sudo apt-get install apache2      ##安装Apache

$ sudo apt-get install openssl      ##安装openssl

$ sudo apt-get install libssl-dev    ##安装openssl开发库

$ sudo apt-get install bless      ##编辑器使用 bless 十六进制编辑器,需预先安装

三、openssl.cnf简单释义

$ vi /usr/lib/ssl/openssl.cnf
127 [ req_distinguished_name ]
128 countryName                    = Country Name (2 letter code)##国家名,2个字母代码简称
129 countryName_default            = CN  ##中国就是CN
130 countryName_min                = 2
131 countryName_max                = 2
132
133 stateOrProvinceName            = State or Province Name (full name)##州或省的名字
134 stateOrProvinceName_default    = beijing
135
136 localityName                    = Locality Name (eg, city)  ##本地城市名
137 localityName_default            =beijing
138 0.organizationName              = Organization Name (eg, company) ##组织(公司)名
139 0.organizationName_default      = beijing www company
140
145 organizationalUnitName          =Organizational Unit Name(eg,section)##组织单元(部门)名
146 organizationalUnitName_default  = www
147
148 commonName                      = Common Name(e.g.server FQDN or YOUR name)##服务器域名
149 commonName                      = www.baidu.com
150 commonName_max                  = 64
151
152 #emailAddress                  = Email Address      ##Email地址
153 emailAddress                    = admin@baidu.com
154 emailAddress_max                = 64
155
156 # SET-ex3                      = SET extension number 3
157
158 [ req_attributes ]
159 #challengePassword              = A challenge password  ##修改密码
160 challengePassword              =
161
163 challengePassword_min          = 4
164 challengePassword_max          = 20

四、成为数字证书认证机构(CA),并为该CA生成证书

①将openssl.cnf配置文件拷贝到当前目录下并创建以下在配置文件中指定的子文件夹

Ubuntu安装OpenSSL

$ sudo ln /usr/lib/ssl/openssl.cnf .

$ mkdir demoCA

$ cd demoCA

$ mkdir certs crl newcerts

$ touch index.txt serial  ##index.txt为空;

##serial必须写入内容,且为字符串格式的数字(比如1111)

设置好这些后,现在就可以创建和发布证书了

②为自己的 CA 生成自签名证书,这意味着该机构是被信任的,而它的证书会作为 root 证书

$ openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf

Ubuntu安装OpenSSL

注:务必记住自己所输入的密码,命令输出的文件存储:ca.key 与 ca.crt 中。文件 ca.key 包括 CA 的私钥,而 ca.crt 包含了公钥证书。

五、为客户生成证书

现在,我们是 root CA 了,可以为客户签数字证书了,客户是www.baidu.com。

①生成公开/私有密钥对

$ openssl genrsa -des3 -out server.key 1024

Ubuntu安装OpenSSL

注:需要提供一个密码来保护你的密钥,密钥会被保存在 server.key 文件中.

②生成证书签名请求 ,一旦公司拥有了密钥文件,它应当生成证书签名请求(CSR)。CSR 将被发送给 CA,CA 会为该请求生成证书(通常在确认 CSR 中的身份信息匹配后)。

$ openssl req -new -key server.key -out server.csr -config openssl.cnf

Ubuntu安装OpenSSL

注:请记住自己的输入

③生成证书。CSR 文件需要拥有 CA 的签名来构成证书(在现实世界中,CSR 文件常常被发送给可信任的 CA 签名)。输入CA的密钥,使用我们自己的 CA 来生成证书:

$ openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf

Ubuntu安装OpenSSL

linux

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多