CephOpenSSL的示例分析

这篇文章主要为大家展示了“Ceph OpenSSL的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Ceph OpenSSL的示例分析”这篇文章吧。

“只有客户发展了,才有我们的生存与发展!”这是成都创新互联的服务宗旨!把网站当作互联网产品,产品思维更注重全局思维、需求分析和迭代思维,在网站建设中就是为了建设一个不仅审美在线,而且实用性极高的网站。创新互联对成都做网站、成都网站制作、网站制作、网站开发、网页设计、网站优化、网络推广、探索永无止境。

Ceph OpenSSL


1. SSL介绍

SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。Secure Socket Layer,为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取及窃听。一般通用之规格为40 bit之安全标准,美国则已推出128 bit之更高安全标准,但限制出境。只要3.0版本以上之I.E.或Netscape浏览器即可支持SSL。

SSL协议提供的安全通道有以下三个特性:

  • 机密性:SSL协议使用密钥加密通信数据。

  • 可靠性:服务器和客户都会被认证,客户的认证是可选的。

  • 完整性:SSL协议会对传送的数据进行完整性检查。

1.1 ssl证书分类

SSL证书依据功能和品牌不同分类有所不同,但SSL证书作为国际通用的产品,最为重要的便是产品兼容性(即证书根预埋技术),因为他解决了网民登录网站的信任问题,网民可以通过SSL证书轻松识别网站的真实身份。SSL证书分为如下种类:

  • 扩展验证型(EV)SSL证书

  • 组织验证型(OV)SSL证书

  • 域名验证型(DV)SSL证书

上述三种证书存在一些差别,这里进行简单叙述:

  • DV和OV型证书最大的差别是:DV型证书不包含企业名称信息;而OV型证书包含企业名称信息。

  • OV型和EV型证书,都包含了企业名称等信息,但EV证书因为其采用了更加严格的认证标准,浏览器对EV证书更加“信任”,当浏览器访问到EV证书时,可以在地址栏显示出公司名称,并将地址栏变成绿色。

  • 三种SSL证书的价格一般按照EV,OV,DV逐个递减。

2. HTTPS介绍

HTTPS(Hypertext Transfer Protocol Secure)安全超文本传输协议。它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果。HTTPS实际上应用了Netscape的完全套接字层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。)SSL使用40 位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。https是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,https的安全基础是SSL。

3. Civetweb配置SSL

3.1 前提

操作前需要创建桶bucket1,并将权限设置成公开访问,为了验证的直观性,建议同时上传多个对象,如obj1,obj2...并且将对象的权限也设置成公开访问,这样便于后续采用浏览器进行访问。

3.2 创建一个自签名的认证

首先需要利用openssl生成根证书,以后的服务器端证书或者客户端证书都用他来签发,可以建立多个根证书,就像对应不同的公司一样。

#生成根证书的私钥,参数des3是加密算法
openssl genrsa -des3 -out server.key 1024
	
#生成服务器端证书签名请求文件(csr文件),利用私钥生成一个根证书的申请,一般证书的申请格式都是csr。所以私钥和csr一般需要保存好
openssl req -new -key server.key -out server.csr	

cp server.key server.key.orig

#去除密钥文件的保护密码,每次读取key文件时可以不需要口令
openssl rsa -in server.key.orig -out server.key	

#自签名,有效期10年
openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt	

cp server.crt server.pem

cat server.key >> server.pem

注:在做第二步时,存在common name(CN)选项的设置,为了与AWS S3的域名访问规则一致,可以设置成*.exampletest.com,其他的选项可随意。

3.3 使用如下软连接

需要使用软连接,否则会出错,可在log文件中查看出错信息。

ln -s /lib64/libssl.so.1.0.1e /usr/lib64/libssl.so
ln -s /lib64/libcrypto.so.1.0.1e /usr/lib64/libcrypto.so

3.4 配置端口信息

这里需要在ceph.conf文件中配置rgw_DNS_namergw_frontends两个参数信息。

[client.rgw.rgw1]
host = ceph2
rgw_dns_name = exampletest.com

rgw_frontends = "civetweb port=443s ssl_certificate=/etc/ceph/private/server.pem"

注:在rgw_frontends参数中需要配置3.1节中生成的ssl证书server.pem的路径。

3.5 加入域名

在rgw实例所在的主机的etc/hosts下加入以下域名映射:

192.168.141.142 bucket1.exampletest.com

4. 访问验证

4.1 网页通过https访问域名

在用浏览器访问的主机的hosts文件下添加:

192.168.141.142 bucket1.exampletest.com

下面对网站的访问以IE浏览器为例

  1. 无证书访问

    浏览器中直接输入网址https://bucket1.exampletest.com,可以正确访问,并且列出桶bucket1中内容,但是地址栏会提示证书错误的字样,这是由于未导入证书所致。

  2. 有证书访问

    首先导入证书。

    浏览器地址栏输入网址https://bucket1.exampletest.com 时会出现锁形标志,表示安全访问链接,并且能够正确列出桶bucket1中的内容。

4.2 通过sdk访问

为方便测试,这里的证书是自签名的,不是机构颁发。所以在sdk中需要通过参数设置来绕过证书的检查。这里以python为例,将与使用http访问方式不同的两处地方单独做了说明,如下:

url = 'https://192.168.141.142' 

s3 = boto3.client('s3',
                  verify=False, #只需要将此参数设置成False
                  endpoint_url=url,
                  aws_access_key_id=access_key,
                  aws_secret_access_key=secret_key
                  )

通过上述修改后就可以正常操作。

以上是“Ceph OpenSSL的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


文章名称:CephOpenSSL的示例分析
文章出自:http://pwwzsj.com/article/pphcps.html