这几天摸索了下 HTTPS 的证书生成,以及它在 Nginx 上的部署,搞得头晕脑胀。所以记录下下,方便初学者快捷操作。本文的阐述不一定完善,但是可以让一个初学者了解大致的原理,同时跟着操作可以为自己的博客/网站部署一个 HTTPS 证书。
首先,https证书的生成
第一步:
证书前的准备
下载openssl工具,证书的生成需要这个工具。OpenSSL加密证书一般用于签名认证,含私钥和公钥。在Linux系统中,OpenSSL一般是已经安装好了,可以直接使用。而在Windows系统中,是需要安装使用的。
windows下OpenSSL加密证书安装步骤与使用方法参考文档:http://jingyan.baidu.com/article/37bce2be782daa1003f3a247.html
敲黑板,做笔记:必须要管理员命令运行,不然ca的证书文件时出现问题:Unable to write ‘random state’
第二步:
生成密钥、证书
为服务器端准备公钥、私钥,如下图:
|
接着,生成 CA 证书
|
在CA 证书执行命令第二步时会出现:
|
注意,这里的 Organization Name (eg, company) [Internet Widgits Pty Ltd]:
后面生成客户端和服务器端证书的时候也需要填写,不要写成一样的!!!可以随意写如:My CA, My Server, My Client。
然后 Common Name (e.g. server FQDN or YOUR name) []:
这一项,是最后可以访问的域名,我这里为了方便测试,写成localhost
,如果是为了给自己的网站生成证书,需要写成类似 baidu.com
。
最后,生成服务器端证书证书
ps:因为命令是在openssl/bin下执行的,所以生成的证书也在这里# 服务器端需要向 CA 机构申请签名证书,在申请签名证书之前依然是创建自己的 CSR 文件openssl req -new -key server.key -out server.csr# 向自己的 CA 机构申请证书,签名过程需要 CA 的证书和私钥参与,最终颁发一个带有 CA 签名的证书openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.c
nginx的安装和配置:
安装教程自己百度,略
检查是否安装成功,点击图中的圈圈就启动了nginx服务器,在浏览器地址栏输入localhost,正常情况下能看到图二的欢迎界面
接着,配置nginx。配置文件位置
具体配置如下:
大功告成,欢迎斧正,qq1106450575