分类目录归档:Linux

HTTPS证书生成和一些基础知识

HTTPS 区别于 HTTP,它多了加密(encryption),认证(verification),鉴定(identification)。它的安全源自非对称加密以及第三方的 CA 认证。

CA 数字证书认证中心

举个栗子

普通的介绍信

假设 A 公司的张三先生要到 B 公司去拜访,但是 B 公司的所有人都不认识他,他咋办捏?

常用的办法是带公司开的一张介绍信,在信中说:兹有张三先生前往贵公司办理业务,请给予接洽……云云。

然后在信上敲上A公司的公章。

张三先生到了 B 公司后,把介绍信递给 B 公司的前台李四小姐。李小姐一看介绍信上有 A 公司的公章,而且A公司是经常和 B 公司有业务往来的,这位李小姐就相信张先生不是歹人了。

引入中介机构的介绍信

好,回到刚才的话题。如果和 B 公司有业务往来的公司很多,每个公司的公章都不同,那前台就要懂得分辨各种公章,非常滴麻烦。

所以,有某个中介公司 C,发现了这个商机。C公司专门开设了一项“代理公章”的业务。

今后,A 公司的业务员去B公司,需要带2个介绍信:
  介绍信1
  含有 C 公司的公章及 A 公司的公章。并且特地注明:C 公司信任A公司。
  
  介绍信2
  仅含有 A 公司的公章,然后写上:兹有张三先生前往贵公司办理业务,请给予接洽……云云。

这样不是增加麻烦了吗?有啥好处捏?

主要的好处在于,对于接待公司的前台,就不需要记住各个公司的公章分别是啥样子的;他/她只要记住中介公司 C 的公章即可。

当他/她拿到两份介绍信之后,先对“介绍信1”的 C 公章,验明正身;确认无误之后,再比对“介绍信1”和“介绍信2”的两个 A 公章是否一致。如果是一样的,那就可以证明“介绍信2”是可以信任的了。

在上面的栗子中,C公司 就是 CA认证中心。 介绍信就是CA认证。

CA 认证分为三类:

  • DV(Domain Validation),面向个体用户,安全体系相对较弱,验证方式就是向 whois 信息中的邮箱发送邮件,按照邮件内容进行验证即可通过;
  • OV(Organization Validation),面向企业用户,证书在 DV 证书验证的基础上,还需要公司的授权,CA 通过拨打信息库中公司的电话来确认;
  • EV(Extended Validation),打开 Github 的网页,你会看到 URL 地址栏展示了注册公司的信息,这会让用户产生更大的信任,这类证书的申请除了以上两个确认外,还需要公司提供金融机构的开户许可证,要求十分严格。

生成密钥、证书

具体操作前,还要先说一些基本概念:

  • .pem: 这是一个集合格式。公钥和私钥都是这个格式。为了区分一般私钥用.key后缀,公钥用.pub后缀。

  • .csr:这个后缀的全称是Certificate Signing Request,即是证书签名请求文件。有一些应用可以通过向证书颁发机构certificate-authorities提交请求,来生成这个文件。 这个文件实际的格式是 PKCS10 。它包括了证书请求的所有的相关细节信息,包括 subject ,orginataion,state,whatnot,以及证书的公钥,之后csr文件会被提交给caca在其基础上进行数字签名,将签名之后的文件返回过来,这个返回过来的文件就是公钥文件(其中包含了public key不包含private key)。这个返回回来的文件也可以有多种格式。可以用如下的命令查看相关信息openssl req -text -noout -in yourcsrfile.csr

  • .pkcs12 .pkx .p12最初被RSA定义在 Public-Key Cryptography Stantard 中,变量12表示这个是被Microsoft加强过的。这个格式同时包含公钥和私钥证书对,不同于.pem文件,这个格式的文件是被加密过的,Openssl可以把这个格式的文件转化成为同时包含公钥和私钥信息的文件:openssl pkcs12 -in file-to-convert.p12 -out converted-file.pem -nodes

  • .crt .cer .cert 实质上是.pem(准确的说是.der)格式的文件的不同扩展。以这些后缀结尾的文件,会被windows的浏览器默认为是证书文件,而.pem不会被这样认出。

  • .der是另一种证书格式,它根据ASN1 DER 格式来存储,ASN1全称Abstract Syntax Notation One也是一种对于数据表示,编码以及传输的数据格式。.pem实际上是采用base64加密之后的.der文件。openssl也可以把.der文件转化成为.pem文件openssl x509 -inform der -in to-convert.der -out converted.pem


具体操作

第一部生成CA证书

现在目录里面会有三个文件,更具上面的基础知识的描述,可以知道这些什么是文件

第一步,为服务器端准备公钥、私钥

目录里多了2个服务端的公钥和私钥

第三步,生成服务器端证书

这次多了三个文件

另外多出来的ca.srl是什么文件呢?

是用来存储证书序列号文件的。

Nginx 部署

nginx配置的server中加上如下配置:

重启后就可以正常访问了。但是很由于CA证书是我们自己签发的,浏览器并不认可,所以会进行警告。

双向认证

在项目中为了数据传输的安全性,我们就可以加上ssl认证。比如:移动端请求服务端的认证加密,以及内部服务的认证加密都可以使用。

第一步, 既然是双向认证,那么我们同样需要为客户端生成一套密钥。

第二步,nginx启用双向认证。

第三步,客户端。

执行

但是这个时候用浏览器访问就会400错误。

这是我们可以为浏览器生成一个证书。然后让浏览器导入就可以访问了。

导入流程见下方

输入刚刚这只的密码即可

点击确认完成

刷新后,选择证书。

之后正常访问。

参考以及引用自:

  1. http://wangzhezhe.github.io/blog/2015/08/05/httpsandgolang/
  2. http://www.cnblogs.com/freespider/p/3622830.html
  3. http://www.barretlee.com/blog/2015/10/05/how-to-build-a-https-server/
  4. http://blog.csdn.net/jiangwlee/article/details/7724274

搭建HTTPS服务器

一、申请https证书

StartSSL可以免费申请https证书,但是免费证书只能使用在一个域名中。

1、登录或注册账号

有账号就登录,没账号就注册。

选择地区、填写邮件,等待确认验证码。

安装浏览器证书

安装完成,点击选择证书,登录。

2、域名验证

选择Validations Wizard -> Domian Validation 域名验证

填写域名

等待获取域名信息,选择验证方式,输入验证码,确认验证,完毕。

3、申请证书

选择 Certificates -> Web Server SSL/TLS Certificate 网页服务器SSL认证

输入域名,以及密钥,点击提交。

系统会根据刚刚输入的密钥生成一个私钥,我们需要将其保存下来。

之后StartSSL就会通过我们的申请。我们只需要将其下载下来上传到服务器即可。

二、服务器配置

www.iter-cc.com.zip解压后得到不同版本服务器的证书,我需要使用的是Nginx Server.zip

解压Nginx Server.zip

服务器配置

编辑nginx配置

当我们重启服务器的时候,系统会让我们输入刚刚生成密钥的命令

输入确认后即可完成。

访问网站,OK!

如果嫌每次重启服务器的时候需要输入密码比较烦,我们可以解密私钥。然后将nginx的路径指向解密后的密钥即可。

编辑服务器配置

之后重启服务器就可以无需密码。

访问网站确认ok!!!

搭建自己的邮件服务器

一、配置域名解析

  1. 确认主域名有A记录指向服务器IP
  2. 添加一个邮件二级域名比如 mail.iter-cc.com 指向服务器ip
  3. 主域名下添加一则MX记录指向邮件二级域名 比如 mail.iter-cc.com。如果你作为邮件服务器的域名没有多个,那么MX优先级可以随便写,最高1,最低50,当优先级高的解析无效时,就会去解析低的。
  4. 添加一则txt记录作为SPF(Sender Policy Framework)。关于SPF的格式可以去http://www.openspf.org/SPF_Record_Syntax 查看。 比如我设置的是

一下为我的域名解析

enter image description here

二、安装Postfix

安装完毕后进行配置

三、安装Dovecot

安装完毕后进行配置

最后返回编辑Postfix配置

注意:
postfixdovecot的分工作用为:
postfix管邮件收发
dovecot负责邮件管理,上传,下载,删除等。

最后记得启动或者重启postfix以及dovecot

最后创建用户,收发邮件

设置foxmail账号,

发送邮件

接收邮件

linux下安装最新版本Java

Ubuntu

1、 Installing default JRE/JDK

2、 Installing Oracle JDK

3、 Managing Java

4、 Setting the “JAVA_HOME” environment variable

如果你因为防火墙或者其他原因,导致installer 下载速度很慢,可以中断操作.然后下载好相应jdk的tar.gz 包,放在:

下面,然后安装一次installer. installer 则会默认使用 你下载的tar.gz

vagrant 搭建自己的开发环境(三)—— 多主机配置

有时候项目不仅仅只有一台服务器,可能会有多台服务器,比如说主从同步,负载均衡,冗余等等。
vagrant也可以配置多台服务器,每台主机都可以拥有自己的配置。

当启动时候,或者ssh链接时候,可以使用 vagrant up 主机名vagrant ssh 主机名 命令针对某一台虚拟机进行操作。

根据单主机的配置,我们可以推算出多主机的配置大致相同。

vagrant 搭建自己的开发环境(二)—— 配置 及 打包

vagrant init xxx初始化后,会生成一个名字叫Vagrantfile的配置文件。大概它,我们就可以对vagrant进行配置。

一、共享目录

vagrant初始化后的目录其实已经和虚拟机共享了。如果还想配置其他共享目录可以进行以下配置。

二、网络配置

  • 公有网络 —— 局域网下都能访问到

  • 私有网络 —— 只有本机才能访问

三、重新打包

重新打包前,需要删除一个文件

不删除的话,重新打包后,再次安装会出现网络异常的问题。

然后就可以打包了,打包命令

打包成功后,会在当前目录下,生成一个名叫package.box的box。然后以后就可以使用此镜像进行安装虚拟机。

vagrant 搭建自己的开发环境(一) —— 安装、初始化、启动

一、安装VirtualBox

官网下载,并安装。不做过多描述。

二、安装vagrant

官网下载,并安装。不做过多描述。

三、添加box

box是指某种操作系统的操作镜像文件。我们可以上vagrantcloud下载自己想要的box。

1、创建工作目录

2、下载/添加box

由于网络原因使用命令行下载太慢,我们可以是用迅雷下载完后,使用命令行添加本地box

安装完成后,我们进行初始化,就是启动,然后使用ssh链接到虚拟机。

3、初始化

4、启动

4、ssh 链接

如果windows上还没有安装openssl,可以先google一下,如何安装配置。

如果已经安装好了,可以直接使用 vagrant ssh 命令,链接到虚拟机并且操作。

ffmpeg转换视频格式

一、安装

1、centos使用yum安装

 

在线预览word,excel,pdf

大致思路:word/excel  转换成 pdf,然后pdf转换成swf,在各个浏览器兼容显示。

一、安装环境

1、准备工作

 2、安装openoffice

 2、安装 jodconverter

 

3、转换成pdf

转换成功如下。2014-05-10_220219

 

其实如果只考虑现代浏览器(chrome、firefox等),已经可以在线预览了。

但是为了兼容低版本的IE,需要将PDF转化成SWF进行兼容。

ps:如果存在乱码问题解决方法如下

 4、安装 swftools

 5、FlexPaper浏览swf

 

测试连接:http://test.iter-cc.com/FlexPaper/1.html

Centos安装SVN

1、通过yum安装svn,当然一般centos都会默认安装。

2、建立SVN库

3、配置

 

 

4、启用svn服务

5、客户端连接

连接地址

2014-02-09_165945

 

输入用户名密码

 

2014-02-09_170010

 

成功登录

2014-02-09_170043

 

6、svn文件结构目录

2014-02-09_171420

 

Subversion有一个很标准的目录结构,是这样的。

project为项目名称,trunk为主开发目录,branches为分支开发目录,tags为tag存档目录(不允许修改)。

详细可参考:点击这里

 

7、为SVN开启防火墙规则。点击这里