Nginx配置ssl证书部署https网站详解(自定义CA证书)

本文介绍的是使用自己生成的ca证书去部署https网站,本实验只限于在局域网、或者做实验用,如果要对外访问的话还是要去ca证书提供商购买,当然买的很贵,网上也有一些机构做免费的ca证书,有兴趣的小伙伴可以自己查找。本文重点是ca证书的一些操作,所以web应用就直接yum装的nginx,希望能给大家带来帮助,

概念介绍

什么是CA:

CA, Certificate Authority 即颁发数字证书的机构。是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。

打个比方来说,a和b在进行交易,a不太信任b,害怕b交易后劫票,同样b也不太信任a,害怕a交易后反水。他们彼此都不信任,交易也就很难进行。这个时候来个c,c说“我来给你们做担保,但是你们俩要信任我.....”,最后三方达成一致完成了交易。

什么是HTTPS:

是以安全为目标的HTTP通道,简单讲是HTTP的安全版,https协议需要到ca申请证书,一般免费证书很少,需要交费。

生成CA证书

  • 如果只有一台主机的话先执行服务端命令后执行客户端命令

服务端:

1. 生成私钥

cd  /etc/pki/CA
(umask 077, openssl genrsa -out private/cakey.pem 1024)  
  • genrsa     生成rsa参数
  • -out     生成文件保存路径
  • 1024    生成key的长度

openssl命令详解

2. 自签名证书

openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365
#输入命令以后会依次让你输入ca的一些信息,如下
Country Name                国家代码:cn
State or Province Name      所在省份:beijign
Locality Name               所在城市:beijing
Organization Name           组织或公司名称:hengheihahei
Organizational Unit Name    所在部门名称:yunwei
Common Name                 用户或主机名:lemon
Email Address               邮箱地址:[email protected]
#以上内容根据自己情况输入
  • -new     新创建个
  • -x509        使用x509结构
  • -key    key所放路径
  • -out     生成文件输出路径
  • -days     证书有效时间

客户端:

扫描二维码关注公众号,回复: 9758837 查看本文章

1. 生成私钥

(umask 077; openssl genrsa -out nginx.key -des 1024)
  • -des       指明用什么加密算法把我们的私有密钥加密(此项可以不写)

2. 生成证书申请文件

openssl req -new -key nginx.key -out app.csr
  • 注意:配置信息要与之前的前三项保持一致,Common Name 必须要写

3. 将申请文件发送给服务端

scp app.csr 192.168.30.99:/etc/pki/CA
  • 注意,如果只有一台主机,此步骤可以不执行

颁发证书:

#在服务端执行
touch ./index.txt   #不创建会提示错误,生成证书索引数据库文件
echo 00 > ./serial   #00可以自己指定,指定第一个颁发证书的序列号
openssl ca -in app.csr -out certs/app.crt -days 100
#提示全输y

然后把证书发送到客户端就行

证书查看命令:

openssl x509 -in cacert.pem -noout -text    #查看证书详细内容
openssl x509 -in cacert.pem -noout -issure    #查看证书有效时长

NGINX配置

#在nginx的server配置段,添加如下配置
server {
    server_name www.luckynm.cn;
    listen 443;
    ssl on;
    ssl_certificate /etc/pki/CA/certs/app.crt;
    ssl_certificate_key /etc/pki/CA/nginx.key;
}

配置生效:

nginx -s reload

访问效果:(我是在一台机器上做的实验)

如有不清楚的地方欢迎留言

发布了40 篇原创文章 · 获赞 59 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_44208042/article/details/94004231