nginx+ca+https设置

前言

https加密协议恐怕是没办法避免的了。无论苹果还是微信现在很多地方都要用到https协议。不是的话就不给过。
也是醉了。
好了,说明一下这篇文章是:
nginx+ca+https设置【草稿试验版】

中最后试验出来的,
然后大约参考了:
【HTTPS】自签CA证书 && nginx配置https服务

OpenSSL生成证书对

解决自建ca认证后浏览器警告

用openssl自做CA自签发SSL证书

openssl、x509、crt、cer、key、csr、ssl、tls 这些都是什么鬼?

使用OpenSSL生成CSR文件,并申请全球通用SSL证书

OPENSSL生成SSL自签证书

Nginx下配置Https证书详细过程

nginx配置ssl证书实现https和http共存访问

https和http共存的nginx配置

强烈推荐:【因为这一篇可以一步到位完成】
如何为nginx配置https(免费证书)

配置过程

目录准备

我们先新建一个目录:

mkdir -p /etc/pki/CA/
cd /etc/pki/CA/

为什么偏要这个目录??额,我也不知道不过,
在这里插入图片描述

这个目录想必是openssl默认位置了。放在一起方便点吧。

在这里插入图片描述

然后,值得注意的是,为了方便新建多个证书,下面我将新建了各个文件夹,譬如,localhost,

mkdir -p localhost
cd localhost

在这里插入图片描述

错误隐患以及事先预防

这里提醒一下,等下用openssl命令行的时候可能会报错误,在草稿篇里面遇到过:
然后,问题1出现:
在这里插入图片描述

ca: ./demoCA/newcerts is not a directory
./demoCA/newcerts: No such file or directory

解决方案:
在这里插入图片描述

在这里插入图片描述

于是:
你可以在这样解决

cd /etc/pki/CA/
mkdir -p demoCA/newcerts
touch  demoCA/index.txt
touch demoCA/serial
echo  '01'>demoCA/serial


在这里插入图片描述

nginx开启https需要什么证书?

之前写过一篇《tomcat https配置方法(免费证书)》的简书(想看的可以去我的主页里面看下,这两篇之间还是有许多相关联的知识的~),里面有提到过常用证书的分类,其中nginx使用的就是PEM格式的证书,我们将其拆分开就是需要两个文件,一个是.key文件,一个是.crt文件.
作者:夜_雪
链接:https://www.jianshu.com/p/9523d888cf77
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

生成key文件且去除密码

注意,1024位已经不安全了啊,现在要2048了,请参考:
在这里插入图片描述

cd /etc/pki/CA/localhost/
openssl genrsa -des3 -out server.key 2048

在这里插入图片描述

生成key的时候是需要密码的,不过,需要注意的是,假如直接拿这个key来用,那么每次用到它都要输一次密码,而用系统systemctl restart nginx的时候也会因为没有输入密码而导致:
在这里插入图片描述

这样的错误,所以为了方便,接下来是必然去掉密码好点的:

openssl rsa -in server.key -out server.key

在这里插入图片描述

创建服务器证书的申请文件server.csr

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

这里注意一下,
需要你输入很多内容,更有一个common name要留心,因为:

其中Country Name填CN,Common Name填主机名也可以不填,如果不填浏览器会认为不安全.(例如你以后的url为https://abcd/xxxx…这里就可以填abcd),其他的都可以不填.
作者:夜_雪
链接:https://www.jianshu.com/p/9523d888cf77
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

另外已经有兄弟遇到过了:
解决自建ca认证后浏览器警告

在这里插入图片描述

所以我们这样来做:

在这里插入图片描述

现在已经有私钥key,然后成功生成了csr — 证书签名申请 文件,接下来就是创建ca证书了

创建CA证书

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

在这里插入图片描述

ca的证书拿到手了,然后给自己做一个证书吧。

创建自当前日期起有效期为期十年的服务器证书server.crt

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

在这里插入图片描述

ls你的文件夹,可以看到一共生成了5个文件:
ca.crt ca.srl server.crt server.csr server.key
其中,server.crt和server.key就是你的nginx需要的证书文件.

nginx配置

这里,只作为本地测试,我就配置为http和https共存。

在这里插入图片描述

注意,我们没有生成pem文件,ssl_certificate_key用的是 key文件。

当然你可以参考一下下文作者:

打开你的nginx配置文件,搜索443找到https的配置,去掉这段代码的注释.或者直接复制我下面的这段配置:

server {

    listen       443;
        server_name  localhost;
        ssl                  on;
        ssl_certificate     /root/Lee/keys/server.crt;#配置证书位置
        ssl_certificate_key  /root/Lee/keys/server.key;#配置秘钥位置
        #ssl_client_certificate ca.crt;#双向认证
        #ssl_verify_client on; #双向认证
 
        ssl_session_timeout  5m;
        ssl_protocols  SSLv2 SSLv3 TLSv1;
        ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
        ssl_prefer_server_ciphers   on;

将ssl_certificate改为server.crt的路径,将ssl_certificate_key改为server.key的路径.
nginx -s reload 重载配置
至此,nginx的https就可以使用了,默认443端口.
作者:夜_雪
链接:https://www.jianshu.com/p/9523d888cf77
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

这里我的配置是:

在这里插入图片描述

重启服务,查看结果

在这里插入图片描述

注意,如果你的nginx没有开启ssl功能,那么就只能自己编译了。

http访问:
在这里插入图片描述

https访问:

在这里插入图片描述

在这里插入图片描述

大功告成。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值