登陆阿里云 产品服务--安全--SSL证书

linux nginx更新证书 linux nginx ssl证书_html

linux nginx更新证书 linux nginx ssl证书_nginx_02

linux nginx更新证书 linux nginx ssl证书_html_03

按照以下流程申请证书文件

linux nginx更新证书 linux nginx ssl证书_其他_04

1购买证书

linux nginx更新证书 linux nginx ssl证书_其他_05

linux nginx更新证书 linux nginx ssl证书_其他_06

直接购买

2申请证书

linux nginx更新证书 linux nginx ssl证书_其他_07

填写资料 包括域名 姓名等

linux nginx更新证书 linux nginx ssl证书_html_08

其中域名验证类型建议选择DNS、文件验证虽然时间短但创建隐藏文件夹时可能有问题。

如果你有操作经验也可以选择文件验证,优点是时间很短;DNS验证需要等待解析生效相对时间长点

如果你懂得生成CSR则可以自己生成上传,否则选系统生成并点击创建,然后提交审核。

3验证

耐心等待几分钟 就会验证成功

linux nginx更新证书 linux nginx ssl证书_nginx_09

点击下载

linux nginx更新证书 linux nginx ssl证书_html_10

其中点击帮助 可以查询到帮助文档 按照帮助文档配置即可

https://help.aliyun.com/knowledge_detail/95491.html

linux nginx更新证书 linux nginx ssl证书_其他_11

具体流程 

1下载证书

2在Nginx的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为a.key;

linux nginx更新证书 linux nginx ssl证书_其他_12

3打开 Nginx 安装目录下 conf 目录中的 nginx.conf 文件,找到:

linux nginx更新证书 linux nginx ssl证书_其他_13

修改成你自己的信息

# 以下属性中以ssl开头的属性代表与证书配置有关,其他属性请根据自己的需要进行配置。
server {
listen 443;
server_name localhost;  # localhost修改为您证书绑定的域名。
ssl on;   #设置为on启用SSL功能。
root html;
index index.html index.htm;
ssl_certificate cert/domain name.pem;   #将domain name.pem替换成您证书的文件名。
ssl_certificate_key cert/domain name.key;   #将domain name.key替换成您证书的密钥文件名。
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;  #使用此加密套件。
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;   #使用该协议进行配置。
ssl_prefer_server_ciphers on;   
location / {
root html;   #站点目录。
index index.html index.htm;   #添加属性。
}
}

然后使用./nginx -t 测试配置文件

这里经常会出现如下问题

linux nginx更新证书 linux nginx ssl证书_nginx_14

nginx:[emerg]unknown directive ssl,就是这个错误提示

因为我们配置这个SSL证书需要引用到nginx的中SSL这模块,然而我们一开始编译的Nginx的时候并没有把SSL模块一起编译进去,所以导致这个错误的出现。

1来到安装目录下

2./configure --with-http_ssl_module  //重新添加这个ssl模块

3执行make命令,但是不要执行make install,因为make是用来编译的,而make install是安装,不然你整个nginx会重新覆盖的。

4在我们执行完做命令后,我们可以查看到在nginx解压目录下,objs文件夹中多了一个nginx的文件,这个就是新版本的程序了。首先我们把之前的nginx先备份一下,然后把新的程序复制过去覆盖之前的即可。

               cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

               cp objs/nginx /usr/local/nginx/sbin/nginx
再次运行检测

linux nginx更新证书 linux nginx ssl证书_其他_15

检测通过,启动nginx

linux nginx更新证书 linux nginx ssl证书_Nginx_16

这里新版本的nginx可能会报警告 不用理会

linux nginx更新证书 linux nginx ssl证书_Nginx_17

如图配置成功

但是用户直接输入域名依然会请求http形式

linux nginx更新证书 linux nginx ssl证书_Nginx_18

可以设置http自动跳转到https配置

HTTP 自动跳转 HTTPS 的安全配置(可选)

若您不了解通过 HTTPS 访问网站的方式,可以通过配置服务器,让其自动将 HTTP 的请求重定向到 HTTPS。您可以通过以下操作设置:

  1. 根据实际需求,选择以下配置方式:
    • 在页面中添加 JS 脚本。
    • 在后端程序中添加重定向。
    • 通过 Web 服务器实现跳转。
    • Nginx 支持 rewrite 功能。若您在编译时没有去掉 pcre,您可在 HTTP 的 server 中增加 rewrite ^(.*) https://$host$1 permanent;,即可将默认80端口的请求重定向为 HTTPS。修改如下内容:
      server {
      listen 443;
      server_name www.domain.com; #填写绑定证书的域名
      ssl on;
      root /var/www/www.domain.com; #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
      index index.html index.htm;   
         ssl_certificate  1_www.domain.com_bundle.crt; #证书文件名称
      ssl_certificate_key 2_www.domain.com.key; #私钥文件名称
      ssl_session_timeout 5m;
      ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
      ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
      ssl_prefer_server_ciphers on;
      location / {
         index index.html index.htm;
      }
      }
      server {
      listen 80;
      server_name www.domain.com; #填写绑定证书的域名
      rewrite ^(.*)$ https://$host$1 permanent; #把http的域名请求转成https
      }

       

  2. 若修改完成,重启 Nginx。即可使用 http://www.domain.com 进行访问。成功跳转到https

linux nginx更新证书 linux nginx ssl证书_html_19