在Nginx服务器如何安装SSL证书
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录 前言`提示:我用的是阿里云的产品,就以阿里云进行的:` 一、下载SSL证书二、安装SSL证书 前言 提示:我用的是阿里云的产品,就以阿里云进行的:Nginx安装步骤:安装详细步骤
一、下载SSL证书进入数字证书管理服务/SSL 证书 /免费证书 点击下载 服务器类型选择Nginx 点击下载
二、安装SSL证书将下载好的证书压缩包进行解压:会有下图两个文件 将证书文件和私钥文件上传到Nginx服务器的证书目录(/usr/local/nginx/conf/cert)
编辑Nginx配置文件nginx.conf,修改与证书相关的配置
vim /usr/local/nginx/conf/nginx.conf按i键进入编辑模式 在nginx.conf中找到到server属性配置,把前面#删除 修改内容如下:
server { #HTTPS的默认访问端口443。 #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。 listen 443 ssl; #填写证书绑定的域名 server_name ; #填写证书文件名称 ssl_certificate cert/.pem; #填写证书私钥文件名称 ssl_certificate_key cert/.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; #默认加密套件 ssl_ciphers HIGH:!aNULL:!MD5; #自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置) #TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。 #ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; #表示优先使用服务端加密套件。默认开启 ssl_prefer_server_ciphers on; location / { root html; index index.html index.htm; }}配置HTTP请求自动跳转HTTPS
server { listen 80; #填写证书绑定的域名 server_name ; #将所有HTTP请求通过rewrite指令重定向到HTTPS。 rewrite ^(.*)$ https://$host$1; location / { index index.html index.htm; }}然后重启Nginx服务器就可以了
重启如果出现错误:
nginx: [emerg] cannot load certificate "/usr/local/nginx/conf/cert/www.xxx.zxxx.key": PEM_read_bio_缺少http_ssl_module 模块 解决办法: 进入到nginx的源码安装包的config,注意不是/usr/local/nginx,是带有版本号的
具体的步骤: 1 查看版本
[root@xxxxx sbin]# /usr/local/nginx/sbin/nginx -Vnginx version: nginx/1.19.9built by gcc 10.2.1 20230825 (Alibaba 10.2.1-3.5 2.32) (GCC) configure arguments:可以看到configure arguments 没有任何的配置
进入到Nginx源码的config目录
[root@xxxxx sbin]# cd /usr/local/nginx/nginx-1.19.9/[root@xxxxx nginx-1.19.9]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module然后make
[root@xxxxx nginx-1.19.9]# make停止nginx
[root@xxxxx nginx-1.19.9]# /usr/local/nginx/sbin/nginx -s stop在查看是否成功:
[root@xxxxx nginx-1.19.9]# /usr/local/nginx/sbin/nginx -V可以看到configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module 已经有http_ssl_module 模块了
[root@xxxxx nginx-1.19.9]# cd /usr/local/sbin[root@xxxxx nginx-1.19.9]# ./nginx然后启动Nginx 访问 就可以看到成功了 有锁了