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服务器偏向于使用这种编码格式
下面是给自己颁发证书的步骤
生成私钥
生成证书请求文件
生成CA证书
利用CA证书给自己颁发一个证书
创建目录用来存放我们的证书文件
1
|
# mkdir /tmp/cert/
|
生成私钥
1
|
# openssl genrsa -des3 -out server.key 2048
|
这一步执行完以后,cert目录下会生成server.key文件
生成证书请求文件CSR
1
|
# openssl req -new -key server.key -out server.csr
|
要注意的是Common Name这里,要填写成使用SSL证书(即:https协议)的域名或主机名,否则浏览器会认为不安全。例如:如果以后打算用https://www.zhouziqi.com/xxx 这里就填写www.zhouziqi.com
前面提过X.509证书的认证者总是CA或由CA指定的人,所以得先生成一个CA的证书
1
|
openssl req -new -x509 -key server.key -out ca.crt -days 3650
|
最后用第3步的CA证书给自己颁发一个证书玩玩
1
2
3
|
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
其中红色的方框是要自己改的
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
访问结果如下:
本文章转载http://www.cnblogs.com/lan1x/p/5872915.html网址
本文转自 周子琪 51CTO博客,原文链接:http://blog.51cto.com/izhouyu/1975388