TSL 是传输层安全协议,英文是transport layer security 

SSL 是安全套接字层,英文是security socket layer

这两个的区别对于不是搞安全的开发人员来讲的人来说不大

KEY 通常指私钥

CSR 是英文certificate signing request的缩写 中文名为证书签名请求,他不是证书,他是我们要申请证书时一个必要的文件, 需要给CA,CA帮我们颁发出来的证书才是我们真正的证书,这个现在可以理解为公钥

CRT 是英文certificate的缩写,中文名就是证书文件

X.509是一种证书格式,对X.509证书来说,认证者总是CA或由CA指定的人,一份X.509证书是一些标准字段的集合,这些字段包含有关用户或设备及其相应公钥的信息。一般以.crt结尾,根据文件内容编码可以分为以下两种

PEM - privacy Enhanced Mail 以文本的形式打开,以"-----BEGIN..."开头, "-----END..."结尾,内容是BASE64编码.Apache和*NIX服务器偏向于使用这种编码格式.

DER - Distinguished Encoding Rules,打开看是二进制格式,不可读.Java和Windows服务器偏向于使用这种编码格式

下面是给自己颁发证书的步骤

  1. 生成私钥

  2. 生成证书请求文件

  3. 生成CA证书

  4. 利用CA证书给自己颁发一个证书

创建目录用来存放我们的证书文件

# mkdir /tmp/cert/

生成私钥

# openssl genrsa -des3 -out server.key 2048

这一步执行完以后,cert目录下会生成server.key文件

生成证书请求文件CSR

# openssl req -new -key server.key -out server.csr

nginx证书基础知识及申请_第1张图片

要注意的是Common Name这里,要填写成使用SSL证书(即:https协议)的域名或主机名,否则浏览器会认为不安全。例如:如果以后打算用https://www.zhouziqi.com/xxx 这里就填写www.zhouziqi.com


前面提过X.509证书的认证者总是CA或由CA指定的人,所以得先生成一个CA的证书

openssl req -new -x509 -key server.key -out ca.crt -days 3650

 最后用第3步的CA证书给自己颁发一个证书玩玩


openssl x509 -req -days 3650 -in server.csr \
  -CA ca.crt -CAkey server.key \
  -CAcreateserial -out server.crt

执行完以后,cert目录下server.crt 就是我们需要的证书。当然,如果要在google等浏览器显示出安全的绿锁标志,自己颁发的证书肯定不好使,得花钱向第三方权威证书颁发机构申请(即:第4步是交给权威机构来做,我们只需要提交server.key、server.csr,哦,还有毛爷爷就好了)

下面我们认证一下我们的证书有没有问题

自己安装nginx,然后编辑配置文件nginx.conf

nginx证书基础知识及申请_第2张图片

其中红色的方框是要自己改的

443为ssl的端口

www.zhouziqi.com是你刚刚在生成证书请求文件CSR中Common Name选项你填的网址。记住 这里你填了什么 你在访问的时候你就要怎么访问,如上,我填写了www.zhouziqi.com,那么我们就要去访问https://www.zhouziqi.com,不过我们还要去改一下hosts文件。

ssl on代表开启安全的超文本链接

ssl_certificate是ssl的证书文件的路径

ssl_certificate_key是ssl密钥的路径

重启服务

在客户端上修改C:\Windows\System32\drivers\etc目录下的hosts文件,让www.zhouziqi.com这个网址指向虚拟机的IP如下表示www.zhouziqi.com指向IP,192.168.65.128

192.168.65.128 www.zhouziqi.com

访问结果如下:

nginx证书基础知识及申请_第3张图片

本文章转载http://www.cnblogs.com/lan1x/p/5872915.html网址