准备工作,其实跟这篇文章的《Apache配置SSL证书以及http(80)永久重定向跳转https(443)的方法》,大体一样,那么在这里的话,我觉得还是写下来吧,要不然要跑过去看,也挺麻烦的,你们说是吧?
还有一点,如果你站点也是跟本站一样,使用的是虚拟类型的空间或者主机,可以参考这篇文章《给衡天主机的虚拟主机配置安装添加SSL证书教程来了。》,因为大部分的虚拟空间/主机都是有快捷入口的。
而对于买的是云主机/轻量服务器/服务器这些的,那可以继续往下看了。
首要条件(默认都已准备好)
已有SSL证书,并讲证书下载到本地已备使用。
443端口没有被禁止,默认情况下不会的,当然每台的主机不好说,因为一些特殊的情况,就给关闭了,所以这里还是要检查下的哈。
您的Nginx服务器上已安装了http_ssl_module
模块(启用SSL功能)。
操作步骤
1、找到Nginx的安装目录(默认为/usr/local/nginx/conf)下,并在该目录下创建cert目录,并将SSL证书的所有相关文件上传到该cert目录中。
2、在Nginx的安装目录,找到Nginx配置文件(nginx.conf),并编辑该文件,添加与证书相关的配置内容,在配置文件中定位到HTTP协议代码片段(http{}
),并在HTTP协议代码里面添加以下server配置(如果server配置已存在,按照以下注释内容修改相应配置即可)。
#以下属性中,以ssl开头的属性表示与证书配置有关。 server { #配置HTTPS的默认访问端口为443。 #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。 #如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。 listen 443 ssl; server_name yourdomain; #需要将yourdomain替换成证书绑定的域名。 root html; index index.html index.htm; ssl_certificate cert/cert-file-name.pem; #需要将cert-file-name.pem替换成已上传的证书文件的名称。 ssl_certificate_key cert/cert-file-name.key; #需要将cert-file-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.1 TLSv1.2 TLSv1.3; #表示使用的TLS协议的类型。 ssl_prefer_server_ciphers on; location / { root html; #Web网站程序存放目录。 index index.html index.htm; } }
3、重启Nginx服务器使SSL配置生效。
#重启命令一 service nginx restart #重启命令二 cd /usr/local/nginx/sbin #进入Nginx服务的可执行目录。 ./nginx -s reload #重新载入配置文件。
4、可选,修改httpd.conf文件,设置HTTP请求自动跳转HTTPS,找到Nginx安装目录下的httpd.conf文件中server {}
代码段后面。
server { listen 80; server_name yourdomain; #需要将yourdomain替换成证书绑定的域名。 rewrite ^(.*)$ https://$host$1; #将所有HTTP请求通过rewrite指令重定向到HTTPS。 location / { index index.html index.htm; } }
代码不唯一,方法有很多,可看Nginx配置http跳转https访问