把 http換成 https
這是我現在的博客地址:https://www.yating.online/
(╹▽╹)感謝運維小哥的指導~
ssl證書:實現網站HTTPS化,使網站可信,防劫持、防篡改、防監聽、安全加密。SSL 證書就是遵守 SSL協議,由受信任的數字證書頒發機構CA,在驗證服務器身份後頒發,具有服務器身份驗證和數據傳輸加密功能。
該安全協議主要用來提供對用戶和服務器的認證;對傳送的數據進行加密和隱藏;確保數據在傳送中不被改變,即數據的完整性,現已成爲該領域中全球化的標準。
步驟:
- 第一步:首先購買ssl證書:我用的是阿里雲服務器。ssl證書購買地址:https://common-buy.aliyun.com/?spm=5176.7968328.1266638…122e1232hPOLjC&commodityCode=cas&aly_as=HPiHXlKb#/buy
- 第二步:購買以後需要填寫信息申請;成功以後就可以下載ssl證書了;
- 下載nginx服務類型的證書
文件類型介紹
-
.key文件:屬於密鑰文件,SSL證書的私人密鑰就包括在內。是信息內容的中樞;
-
.csr文件:文件裏包括證書的公用密鑰和一些公司內部重要祕密信息,要使用者通過請求籤名之後才能夠直接生出證書;
-
.crt文件:此文件也包含了ssl證書的公用密鑰、簽字訊息以及根據不同的類型伴隨不同認證的信息,通常各類簽名簽字證書都會在這類文件中,如IP等;
-
.pem文件:該文件較其他後綴文件來說比較少見,裏面包含着證書的私人密鑰以及其他一部分證書重要的信息。
重點:請記得在阿里雲的安全組策略,把443端口號給開放出來哦~!
記得把你頁面上的所有http的請求都改成https,不然報錯!
通用格式:
listen 443 ssl;
server_name yating.online;
ssl_protocols TLSv1.2 TLSv1.1;
ssl_certificate 文件位置/www.yating.online.pem;
ssl_certificate_key 文件位置/www.yating.online.key;
ssl_session_timeout 600; #緩存有效時間10分鐘,默認5m 5分鐘
ssl_protocols SSLv2 SSLv3 TLSv1; #支持的協議
ssl_ciphers HIGH:+AES; #限定加密算法
雖然這樣配置就可以了,但是當我訪問www.yating.online的時候,還是默認http://www.yating.online;
(●—●)所以需要設置,一下,強制http轉爲https:
#訪問yaitng.online,強制http轉爲https
server {
listen 80;
server_name localhost;
rewrite ^ https:/$http_host$request_uri? permanent;
}
這樣地址就會變成變成https://www.yating.online啦~(︶.̮︶✽)
nginx指令給一波
- /usr/local/webserver/nginx/sbin/nginx 啓動
- /usr/local/webserver/nginx/sbin/nginx -s reload # 重新載入配置文件
- /usr/local/webserver/nginx/sbin/nginx -s reopen # 重啓 Nginx
- /usr/local/webserver/nginx/sbin/nginx -s stop # 停止 Nginx
下面是我nginx配置:
#user nobody;
worker_processes 1;
user root;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#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 logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name localhost;
rewrite ^ https:/$http_host$request_uri? permanent;
}
server {
listen 80;
listen 443 ssl;
server_name yating.online;
ssl_protocols TLSv1.2 TLSv1.1;
ssl_certificate 文件位置/www.yating.online.pem;
ssl_certificate_key 文件位置/www.yating.online.key;
ssl_session_timeout 600; #緩存有效時間10分鐘,默認5m 5分鐘
ssl_protocols SSLv2 SSLv3 TLSv1; #支持的協議
ssl_ciphers HIGH:+AES; #限定加密算法
#access_log logs/host.access.log main;
#charset koi8-r;
#myweb nuxt項目
location / {
#alias /root/yating-project/;
#index index.html index.htm;
#autoindex on;
proxy_pass http://127.0.0.1:9000;
}
#靜態資源
location /game {
alias /root/easyGame/output/;
index index.html index.htm;
autoindex on;
}
#對外開放資源
location /res{
alias /root/resource/;
index index.html index.htm;
autoindex on;
}
#後臺接口地址
location /api/ {
expires 7d;
proxy_set_header Host $host;
proxy_pass_header User-Agent;
proxy_pass http://127.0.0.1:3000/;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}