在很多加密环境中,我们都需要使用OpenSSL。很多时候我们都不知道OpenSSL到底是什么东西。
准确的来说,OpenSSL只是一套工具包软件,用于生成X.509协议中所使用的密钥,公钥等文件。
举例来说,我们都知道HTTP和HTTPS所代表不同的意思,HTTPS表示使用加密方式对数据进行传输,但是数据是怎么样进行加密的呢?这里有几个加密协议的版本SSL V2, SSL V3和TLS。这个加密方式的处理是在应用服务器和客户端之间进行的。要实现一个完整的加密方式,我们需要读取服务器的证书来使客户端和服务器端能进行握手。
在这个过程中OpenSSL项目的地位又是什么呢?
举例来说,我们都知道如果需要Apache支持SSL协议,我们需要是用Apache的SSL模块。这个模块叫做OpenSSL模块。因为这个名称和OpenSSL这个项目的名称是一致的,我们就很容易混淆Apache中使用的OpenSSL模块和OpenSSL项目。
其实OpenSSL项目只是一些小程序,用来生产Apache服务器中所需要使用的密钥,证书等文件。和Apache所使用的OpenSSL模块是完全不同的东西。因为Apache服务器使用了OpenSSL项目所提供的功能,因此Apache就将这个模块成为OpenSSL模块了。
不知道到这里大家是不是明白了。
简单把OpenSSL项目理解为实现X.509加密协议所使用的相关文件而开发的小工具箱,同时OpenSSL项目也是用C语言开发的程序,可以在操作系统环境中被其他程序调用,因此我们也可以将其理解为类库和接口了。