nginx添加ssl

傻男人 1年前 ⋅ 660 阅读

nginx添加ssl

一、证书申请

以腾讯云申请ssl为例

申请地址

https://console.cloud.tencent.com/ssl

点击免费申请

确认证书类型

image-20211012132459414

按照相关步骤填写

image-20211012132559582

二、创建域名解析

如果上面证书申请时,如果在选择验证方式的时候选择的时,选择自动添加dns验证,则不需要这一步

添加DNS验证

将下图中红色区域添加到DNS解析中去

image-20211012133033706

直至ssl的状态为已签发才能使用

image-20211012133151563

三、服务器放开443端口

在服务器的访问规则中的添加443端口

image-20211012133243785

四、将证书导入到nginx服务器上

  • 下载已经签发的证书

  • 解压证书

  • 将解压文件中的nginx文件拷贝服务器中

    image-20211012133624972

  • 上传证书到/usr/local/nginx/cert文件夹下

五、配置nginx

我自己服务器nginx的地址为:/usr/local/nginx 我自己服务器nginx源码地址:/usr/local/nginx/nginx-1.17.5

验证nginx是否安装-with-http_ssl_module

[root@anjingsi sbin]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.17.5
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --with-http_ssl_module
[root@anjingsi sbin]# 

如果configure arguments后没有with-http_ssl_module则没有安装

安装插件

  • 进入nginx的源码目录,执行命令
./configure --with-http_ssl_module
make install
  • 再次验证插件是否安装完成

如果在源码目录中的objs/nginx验证是含有该插件,启动的sbin/nginx中没有,则先将启动目录中的nginx文件备份,将objs文件夹中的nginx替换启动目录中的sbin中

修改nginx配置

server{
        listen 80;
        listen 443 ssl;
        server_name blog.andoudou.top;
        #证书文件名称
        ssl_certificate /usr/local/nginx/cert/1_blog.andoudou.top_bundle.crt;
        #私钥文件名称
        ssl_certificate_key /usr/local/nginx/cert/2_blog.andoudou.top.key;
        #SSL性能调优
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
        ssl_prefer_server_ciphers on;
        ssl_session_cache shared:SSL:10m;
}

重启nginx,使用https访问是否生效

如果无法访问,请检查防火墙是否放开443端口


全部评论: 0

    我有话说: