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协议请求