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_name
和rgw_frontends
两个参数信息。
[client.rgw.rgw1]
host = ceph1
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
)
通过上述修改后就可以正常操作。
https://my.oschina.net/u/3172043/blog/832360
Ceph OpenSSL的更多相关文章
- Ceph 13.2.8 三节点部署
bs-k8s-ceph eth1 mon osd mgr deploy 2c2g sdb sdc sdd 各20G bs-hk-hk01 eth1 mon osd mgr 2c2g sdb sdc s ...
- centos6.4 ceph安装部署之ceph object storage
preface: ceph-deploy does not provide a rapid installation for Ceph Object Storage install Configura ...
- ceph集群搭建
CEPH 1.组成部分 1.1 monitor admin节点安装ceph-deploy工具 admin节点安装ceph-deploy 添加源信息 rm -f /etc/yum.repos.d/* w ...
- ceph mimic版本 部署安装
ceph 寻址过程 1. file --- object映射, 把file分割成N个相同的对象 2. object - PG 映射, 利用静态hash得到objectID的伪随机值,在 "位 ...
- OpenStack Kilo版加CEPH部署手册
OpenStack Kilo版加CEPH部署手册 作者: yz联系方式: QQ: 949587200日期: 2015-7-13版本: Kilo 转载地址: http://mp.weixin.qq.co ...
- Ceph 存储集群搭建
前言 Ceph 分布式存储系统,在企业中应用面较广 初步了解并学会使用很有必要 一.简介 Ceph 是一个开源的分布式存储系统,包括对象存储.块设备.文件系统.它具有高可靠性.安装方便.管理简便.能够 ...
- Ceph S3 基于NGINX的集群复制方案
前言 ceph的s3数据的同步可以通过radosgw-agent进行同步,同region可以同步data和metadata,不同region只能同步metadata,这个地方可以参考下秦牧羊梳理的 c ...
- 基于Ubuntu 18.04.5 LTS 部署Ceph集群测试及Ceph RDB的使用。
1.ceph简介 Ceph在一个统一的系统中独特地提供对象.块和文件存储 1.1 ceph官网架构图 1.2 架构解释 CEPH 对象存储 CEPH 块设备 CEPH 文件系统 RESTful 接 ...
- Ceph集群搭建记录
环境准备 基础环境 node00 192.168.247.144 node00 node01 192.168.247.135 node01 node02 192.168.247.143 node02 ...
随机推荐
- 笔记-Windows10家庭中文版系统下使用Docker
1.docker是使用Linux内核的,在windows系统下需要使用虚拟机来运行docker. 2.Windows版的docker安装要求,(1)64为操作系统,win7或者更高,(2)支持&quo ...
- Java爬虫框架WebMagic入门——爬取列表类网站文章
初学爬虫,WebMagic作为一个Java开发的爬虫框架很容易上手,下面就通过一个简单的小例子来看一下. WebMagic框架简介 WebMagic框架包含四个组件,PageProcessor.Sch ...
- 【codeforces 789C】Functions again
[题目链接]:http://codeforces.com/contest/789/problem/C [题意] 看式子. [题解] 考虑最后的答案区间; 如果那个区间是从奇数位置的数字开始的; 那么奇 ...
- 【18.40%】【codeforces 631D】Messenger
time limit per test 2 seconds memory limit per test 512 megabytes input standard input output standa ...
- Java native代码编译步骤简书
Java native代码编译步骤简书 目的:防止java代码反编译获取密码算法 (1)编写实现类com.godlet.PasswordAuth.java (2)编译java代码javac Passw ...
- PAT 1011-1020 题解
早期部分代码用 Java 实现.由于 PAT 虽然支持各种语言,但只有 C/C++标程来限定时间,许多题目用 Java 读入数据就已经超时,后来转投 C/C++.浏览全部代码:请戳 本文谨代表个人思路 ...
- docker入门1: Dockerfile介绍
Dockerfile是为快速构建docker image而设计的,当你使用dockerbuild 命令的时候,docker 会读取当前目录下的命名为Dockerfile(首字母大写)的纯文本文件并执行 ...
- 人工模拟获取latch
人工模拟获取latch 任意地dump一latches结构文件: SQL> oradebug dump latches 10 ORA-00074: no process has been spe ...
- WPF中的3D Wireframe
原文:WPF中的3D Wireframe WPF不支持画三维线,但开发人员提供了ScreenSpaceLines3D 类用于实现这个功能.我已经在程序中实现并成功显示3D Wireframe,并能够进 ...
- 国内大型的内部 C# 编程规范
C#编程规范 改动记录 Ver. No 发版日期 编制人 批准人 改动的说明 目 录 1 1.1 1.2 2 2.1 2.1.1 Pascal 大写和小写 2.1.2 Came ...