OpenSSL介绍

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

标题:【翻译】(Ubuntu文档)OpenSSL

本文档用于介绍SSL应用层协议,特别是OpenSSL对SSL的实现。举例详细介绍了在Client-Server环境下OpenSSL的使用。最后,通过例子展示了如何在Apache上使用OpenSSL以提供Https服务。

读者应熟练使用命令行,bash,修改配置文件。

OpenSSL简介:

SSL也即Secure Socket Layer,是由网景公司为了传输敏感数据而提出的协议。SSL使用私钥加密传输的数据,防止被窃听。SSL最普遍的使用适合和浏览器结合使用,但是其他很多的应用也可以使用SSL。一般而言,使用了SSL的URL以https开头。

OpenSSL是广泛使用的商业级SSL工具,由Eric A. Young和Tim J.Hudson开发的库SSLeay。

X.509是ITU-T发布的数字证书规范。它规定了确定个人或计算机系统身份确认所需的信息和属性,用于安全管理和发布英特网的数字签名证书。OpenSSL广泛应用X.509。

OpenSSL使用

安装:首先使用如下命令确定Ubuntu可用的SSL版本:

apt-cache search libssl | grep SSL

应该看到如下结果:

libssl0.9.6 - SSL shared libraries (old version)

libssl-dev - SSL development libraries, header files and documentation

libssl0.9.7 - SSL shared libraries

可能还需要安装ca-certificate.

若需要OpenSSL的通用库,还需安装libssl-dev.

基本OpenSSL命令

确定OpenSSL的版本: openssl verion

OpenSSL的可用命令: openssl help

为查找某一命令的帮助,在命令后加-h,如 openssl enc -h

列出所有可用的加密算法: openssl ciphers -v

使用openssl speed可以查看本机的openssl速度,查看每个算法美妙的加密字节数,以及sign/verify的时间

SSL证书

该部分介绍SSL证书的产生,包括用于支持SSL的服务应用的自签名和公认签名,以及用于客户程序的X.509签名。

服务器SSL证书

生成X.509证书后,有三种方式进行签名:自签名,生成CA以及由公认的CA机构签名。证书签名后,便可用于OpenSSL、连接LDAP的SSL通道以及HTTP服务器。该部分用于介绍证书的生成和签名。

生成并自签名证书

自签名证书的好处是使用方便,按需生成。当然,仅适用于封闭式的测试用途。使用自签名证书的缺点是用户的浏览器或应用,在连接使用自签名的HTTP服务器时总会报警。浏览器如firefox在默认情况下对公认可信的CA不会报警,但是在导入服务器的根证书后,也可以抑制警告。但一般而言,自签名的证书不推荐用于公共应用。(若要用于e-commerce,公认签名证书不可少哦。)

在安装了OpenSSL之后,生成X.509证书就非常简单了。对于自签名证书,首先必须建立CA:

1. 创建初始工作环境,譬如在home目录,

cd && mkdir -p myCA/signedcerts && mkdir myCA/private && cd myCA

创建并进入myCA,同时生成两个子目录 signedcerts和private

myCA用于存放CA证书,证书数据库,生成的证书,密钥以及请求

signedcerts:保存签名证书的copy

private: 包含私钥

2. 在myCA中创建证书库:

echo '01'>serial && touh index.txt

然后创建f文件。sudo nano ~/myCA/f 内容如下:

# My sample f file.

#

# Default configuration to use when one is not provided on the command line.

#

[ ca ]

default_ca = local_ca

#

#

# Default location of directories and files needed to generate certificates.

#

[ local_ca ]

dir = /home//myCA

certificate = $dir/cacert.pem

database = $dir/index.txt

new_certs_dir = $dir/signedcerts

private_key = $dir/private/cakey.pem

serial = $dir/serial

#

#

# Default expiration and encryption policies for certificates.

#

default_crl_days = 365

default_days = 1825

default_md = md5

#

policy = local_ca_policy

x509_extensions = local_ca_extensions

相关文档
最新文档