之前一直没能给我的网站安装上小锁头,作为一个有强迫症的boy怎么能没有一个锁头呢,安装过程虽然有些曲折但是其实很简单的,只在没部署到服务器上时难度确实很大,主要原因在于GitHub提供的域名本身的证书会和你自己安装的证书冲突导致出现证书信息不一致等问题,较难解决就一直搁置了。
http和https的区别:
未安装ssl证书的网站采用http协议用户和站点服务器之间数据传输未加密容易被其他攻击者盗取信息浏览器会提示不安全,其实问题不大没有利益冲突谁会来盗取你站点的信息,如果人家有技术想盗去你信息,加了ssl证书也没意义。
安装ssl证书的好处浏览器会提示用户安全,用户在和服务器信息交换时进行加密更加安全,拥有高贵的小锁头,但是网页加载速度可能会变慢个人感觉,而且https有利于seo会拥有更高的排名。
centos nginx服务器安装ssl证书:
由于我自己目前使用的时centos nginx的服务器所以就简介一下安装过程。
- 向域名商申请免费的ssl证书
- 下载ssl证书里面有对应服务器的密匙文件
- 将密匙文件复制到nginx安装路径里新建一个文件夹cert用于存放这两个文件。有时候并不会像域名商提供的文档里的默认安装路径,而是你自己的安装路径比如腾讯提供的路径是usr/local/nginx/conf而我自己的路径却是etc/nginx
- 最重要的一步就是修改配置文件nginx.conf主要修改你自己密匙文件路径位置和网站根目录
#你的这段代码可能已经存在你只需要将前面注释的#号去除并修改对应信息即可
Settings for a TLS enabled server.
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name _;
root /home/hexo; #网站根目录
ssl_certificate "/etc/nginx/cert/1_www.hesifan.top_bundle.crt"; #填你自己的路径文件名
ssl_certificate_key "/etc/nginx/cert/2_www.hesifan.top.key"; #填你自己的路径文件名
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
# # Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /404.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
}
可选:设置HTTP请求自动跳转HTTPS。
在需要跳转的HTTP站点下添加以下rewrite语句,实现HTTP访问自动跳转到HTTPS页面。这个是添加在nginx.conf文件里关于http站点的设定里的而不是新加在HTTPs设定后面
server {
listen 443;
server_name www.hesifan.top; #将www.hesifan.top修改为您证书绑定的域名,例如:www.hesifan.top。
rewrite ^(.*)$ https://$host$1 permanent; #将所有HTTP请求通过rewrite重定向到HTTPS。
location / {
index index.html index.htm;
}
}
5.重启nginx服务器
systemctl restart nginx.service
6.访问新的地址https://hesifan.top 无误即可
7.这是我nginx文件全部相关信息
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name www.hesifan.top_;
root /home/hexo;
listen 443;
rewrite ^(.*)$ https://$host$1 permanent; #将所有HTTP请求通过rewrite重定向到HTTPS。
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /404.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
# Settings for a TLS enabled server.
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name _;
root /home/hexo;
ssl_certificate "/etc/nginx/cert/1_www.hesifan.top_bundle.crt";
ssl_certificate_key "/etc/nginx/cert/2_www.hesifan.top.key";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
# # Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /404.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
}