前景:
趁着雙十一,廉價入手了一臺服務器,一個域名,現在爲域名所解析的服務器配置SSL證書,使其能使用https安全加密的方式訪問。
首先需要申請一本證書,當然也可以使用電腦生成一本,但是相對而言不算安全,可以前往阿里雲申請一本免費的SSL證書。
申請完,下載下來發送到服務器上,配合Nginx 服務器配置安裝證書:
#user nobody;
worker_processes 1;
#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;
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
client_max_body_size 3m;
proxy_headers_hash_max_size 51200;
proxy_headers_hash_bucket_size 6400;
#gzip on;
# 80 轉發至443
server {
listen 80;
server_name localhost;
rewrite ^(.*)$ https://$host$1 permanent;
location / {
index index.html index.htm;
}
}
# 以下屬性中以ssl開頭的屬性代表與證書配置有關,其他屬性請根據自己的需要進行配置。
server {
listen 443;
server_name yuming.com; # localhost修改爲您證書綁定的域名。
ssl on; #設置爲on啓用SSL功能。
root html;
index index.html index.htm;
ssl_certificate domain/1691770_yuming.com.pem; #將domain name.pem替換成您證書的文件名。
ssl_certificate_key domain/1691770_yuming.com.key; #將domain 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 TLSv1.1 TLSv1.2; #使用該協議進行配置。
ssl_prefer_server_ciphers on;
location / {
# 配置請求轉發到內網ip的4000端口,靜態資源所在
proxy_pass http://172.17.0.8:4000;
}
}
}
使用docker-compose.yml 在服務器上啓動nignx,配置如下:
version: '2.0'
services:
nginx:
restart: always
image: nginx:stable-alpine
ports:
- 8080:80
- 80:80
- 443:443
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- ./conf.d:/etc/nginx/conf.d
- /var/log/nginx:/var/log/nginx
- /etc/letsencrypt:/etc/letsencrypt
- ./domain:/etc/nginx/domain
上面映射了三個端口,分別將宿主機的8080、80指向了nginx容器的80,443指向容器內的443。
運行nginx,使用docker命令啓動,-d表示在後臺運行
docker-compose up -d
接着請求域名:
https://host.com
訪問成功,並且鏈接左邊會出現一把鎖,說明配置已成功,後面就能夠使用https協議訪問你的網站了,當然你還需要去備案。
參考鏈接:
https://help.aliyun.com/document_detail/98728.html?spm=5176.2020520163.cas.36.4baa56a7iBW9Ys