共计 2975 个字符,预计需要花费 8 分钟才能阅读完成。
这篇文章主要为大家展示了“Ceph OpenSSL 的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让丸趣 TV 小编带领大家一起研究并学习一下“Ceph OpenSSL 的示例分析”这篇文章吧。
Ceph OpenSSL1. 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 配置 SSL3.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_name 和 rgw_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 浏览器为例
无证书访问
浏览器中直接输入网址 https://bucket1.exampletest.com,可以正确访问,并且列出桶 bucket1 中内容,但是地址栏会提示证书错误的字样,这是由于未导入证书所致。
有证书访问
首先导入证书。
浏览器地址栏输入网址 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 的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!