Nginx 安装 SSL 证书实现HTTPS访问步骤
随着SSL证书的普及,越来越多的站长将HTTP协议网站升级为HTTPS协议访问,这样可以有效网站的安全。所以下面小编就Nginx 安装 SSL 证书实现HTTPS访问步骤继续介绍。
第一步:获取证书:
服务器 SSL 证书由系统通过 Email 方式发送给用户,证书文件的内容格式如下,请把您的 SSL
证书内容(包括“—–BEGIN CERTIFICATE—–”和“—–END CERTIFICATE—–”)粘贴到记
事本等文本编辑器中,在服务器证书代码文本结尾处回车换行,并分别粘贴证书链代码(包括“—–BEGIN CERTIFICATE—–”和“—–END CERTIFICATE—–”),修改文件扩展名,保
存包含证书和证书链代码的文本文件为 server.pem 或者 server.crt 文件。
第二步:修改配置文件:
最后把 server.crt(或者 server.pem) 、server.key(生成 csr 时生成的私钥)两个文件保存到同一个目录,例如/usr/local/nginx/conf 目录下。
1.用文本编辑器打开 Nginx 根目录下 conf/nginx.conf 文件找到并更新一下内容:
server
{
listen 443 ssl;
ssl_certificate /usr/local/nginx/conf/server.crt; #(备注:证书路径)
ssl_certificate_key /usr/local/nginx/conf/server.key; #(备注:私钥路径)
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;
location / {
root /home/wwwroot/www.domain.com; #(备注:网站文件路径) index index.php index.html index.htm; #(备注:默认首页文件指定)
}
#Blow,I can’t anyway update.
listen 80 default_server;
#listen [::]:80 default_server ipv6only=on;
server_name _;
index index.html index.htm index.php;
root /home/wwwroot/default;
第三步:https 访问排错调整设置:
如果控制每个网站对应的文件路径有单独的配置文件,一般放在/usr/local/nginx/conf/vhost 下面。需要编辑对应网站配置文件配置 443 端口,不然可能导致 http 能正常访问,https 访问 404 报错。修改规则参考如下:
server
{
listen 80; #启用 80
listen 443 ssl; #404 报错就是需要在这里启用 443
#listen [::]:80;
server_name www.domain.com domain.com;
index index.html index.htm index.php default.html default.htm default.php;
root /home/wwwroot/www.domain.com;
include rewrite/opencart.conf;
#error_page 404 /404.html;
# Deny access to PHP files in specific directory
#location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }
include enable-php.conf;
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
location ~ /.well-known { allow all;
}
location ~ /\.
{
deny all;
}
location / {
if ($host != ‘www.domain.com’) {
rewrite ^/(.*)$ https://www.domain.com/$1 permanent;
#设置重定向自动跳转到 www 网站。
}
try_files $uri @opencart;
}
location @opencart {
rewrite ^/(.+)$ /index.php?_route_=$1 last;
}
location /admin/ { index index.php;
}
location ~* (\.(tpl|ini))$ { deny all;
}
access_log /home/wwwlogs/domain.log;
}
修改保存重启 nginx 服务:
service nginx restart
Nginx 安装 SSL 证书成功过后显示如下: