https協議使用配置概述
Author : Janloong Do_O
ssl
Secure socket layer
一般網站使用https需要去CA機構生成證書
內部使用
# 生成一個RSA密鑰
$ openssl genrsa -des3 -out ssltest.key 1024
# 拷貝一個不需要輸入密碼的密鑰文件
$ openssl rsa -in ssltest.key -out ssltest_nopass.key
# 生成一個證書請求
(會提示輸入省份城市 域名等信息 email必須是域名後綴,這樣會生成一個csr文件,可以將csr提交到ssl供應商)
$ openssl req -new -key ssltest.key -out ssltest.csr
這裏沒有提交ssl提供商 而是自己簽發
# 自己簽發證書
$ openssl x509 -req -days 365 -in ssltest.csr -signkey ssltest.key -out ssltest.crt
服務器啓用https
nginx
在server節點下增加
listen 443 ssl; (表示僅僅443端口支持ssl)
ssl_certificate /etc/nginx/ssltest.crt;
ssl_certificate_key /etc/nginx/ssltest_nopass.key;
強制80端口跳轉443
server {
listen 80;
server_name www.域名.com;
rewrite ^(.*) https://$server_name$1 permanent;
}
demo
server {
listen 443;
server_name localhost;
ssl on;
root html;
index index.html index.htm;
ssl_certificate cert/2039460479.pem;
ssl_certificate_key cert/2039460479.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 / {
root html;
index index.html index.htm;
}
}
如果資源無法訪問
將http://請求 改爲 //
這樣默認會使用https協議請求