HTTPS证书本地生成和在nginx上的部署细节

来源:互联网 发布:美国本周经济数据 编辑:程序博客网 时间:2024/06/14 18:37

这几天摸索了下 HTTPS 的证书生成,以及它在 Nginx 上的部署,搞得头晕脑胀。所以记录下下,方便初学者快捷操作。本文的阐述不一定完善,但是可以让一个初学者了解大致的原理,同时跟着操作可以为自己的博客/网站部署一个 HTTPS 证书。


首先,https证书的生成

第一步

证书前的准备

下载openssl工具,证书的生成需要这个工具。OpenSSL加密证书一般用于签名认证,含私钥和公钥。在Linux系统中,OpenSSL一般是已经安装好了,可以直接使用。而在Windows系统中,是需要安装使用的。

windows下OpenSSL加密证书安装步骤与使用方法参考文档:http://jingyan.baidu.com/article/37bce2be782daa1003f3a247.html

敲黑板,做笔记:必须要管理员命令运行,不然ca的证书文件时出现问题:Unable to write ‘random state’


第二步

为服务器端准备公钥、私钥,如下图:

# 生成服务器端私钥
openssl genrsa -out server.key 1024
# 生成服务器端公钥
openssl rsa -in server.key -pubout -out server.pem

接着,生成 CA 证书

# 生成 CA 私钥
openssl genrsa -out ca.key 1024
# X.509 Certificate Signing Request (CSR) Management.
openssl req -new -key ca.key -out ca.csr
# X.509 Certificate Data Management.
openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt

CA 证书执行命令第二步时会出现:

➜ keys openssl req -new -key ca.key -out ca.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:Zhejiang
Locality Name (eg, city) []:Hangzhou
Organization Name (eg, company) [Internet Widgits Pty Ltd]:My CA
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:localhost
Email Address []:

注意,这里的 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

最后,生成服务器端证书证书

# 服务器端需要向 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
ps:因为命令是在openssl/bin下执行的,所以生成的证书也在这里


第三步,

nginx的安装和配置:

安装教程自己百度,略

检查是否安装成功,点击图中的圈圈就启动了nginx服务器,在浏览器地址栏输入localhost,正常情况下能看到图二的欢迎界面


接着,配置nginx。配置文件位置

具体配置如下:




大功告成,欢迎斧正,qq1106450575

0 0
原创粉丝点击