10

Nginx挂载ssl证书开启HTTPS访问网站

 3 years ago
source link: https://www.hehuapei.com/nginx-ssl/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Nginx挂载ssl证书开启HTTPS访问网站

Wiken
2020-03-11

不知小伙伴们在浏览网站时是否有注意到,打开某些网站后,浏览器会在前面加上大大的“不安全”标志,像这样(本文用的是chrome浏览器,其他浏览器中显示的样式可能会有些许不同):

这样既不安全,也不美观,强迫症简直无法忍受。既然这样,那我们为何不给自己的网站开启更美观(事实上也更安全)的https标志呢,说多无用,让我们一起来动手吧!


  1. 一个http网站,已经用Nginx做了http负载并且可以正常访问的网站

  2. ssl证书,网上有很多地方可以申请免费的ssl证书,如阿里云。申请到证书后我们下载证书的 (.key和.pem)两个文件备用


  • 把我们上面准备好的两个证书文件拷贝到服务器的某个目录,可以自己创建一个,这个目录和证书文件是一直不能删掉的
  • 修改网站对应的Nginx配置文件
    如:/etc/nginx/nginx.conf (自己找到自己网站对应的配置文件,然后按以下说明进行修改即可)
# 添加https server
server{
listen 443 ssl;
# 下面的www.example.com替换成你自己网站的域名(注意这个域名一定要跟ssl证书的域名一致)
server_name www.example.com;
index index.php index.html index.htm default.php default.htm default.html;

#SSL-START 这一段是ssl证书的配置
ssl_certificate /etc/nginx/cert/www.example.com.pem; # 这个目录需要替换成你自己证书的存放目录
ssl_certificate_key /etc/nginx/cert/www.example.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;
#SSL-END SSL相关配置

#让http请求重定向到https请求
error_page 497 https://$host$uri?$args;

#下面这些配置跟原本http的server里面的一样就可以了
location / {
}

}
  • 保存配置文件,重启Nginx服务,然后你就可以用 https:// 来访问你自己的网站了

  • 如果你想别人在用http协议访问时,也默认跳转到https协议,可以在修改下配置文件

    #把原来http的server改成下面这样
    #下面www.example.com代表你自己网站的域名
    server {
    listen 80 ;
    server_name www.example.com;
    rewrite ^(.*)$ https://www.example.com$1 permanent;
    }
  • 保存配置文件,重启Nginx服务。现在,即使在打开网页时,输入的是http://xxx ,也会自动跳转到https://xxx


现在,浏览器不会再给你的网站加上大大的不安全标志了,而换成了一把一看就让人很放心的小锁!:laughing::laughing:

本文链接:

https://www.hehuapei.com/nginx-ssl/index.html

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK