Nginx配置免费版https详细步骤
Nginx配置免费版https
基本介绍
HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 [1] 。HTTPS 在HTTP 的基础下加入SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面。
生成证书
openssl是目前最流行的SSL密码库工具,其提供了一个通用、健壮、功能完备的工具套件,用以支持SSL/TLS协议的实现。
证书的生成目录:/usr/local/ssl (可自定义)
openssl req -x509 -nodes -days 36500 -newkey rsa:2048 -keyout /usr/local/ssl/nginx.key -out /usr/local/ssl/nginx.crt
生成过程需要输入多个信息,按照提示输入即可。
配置nginx
- 配置(如果未安装nginx,移步Nginx安装)
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
- make
make
- 复制 nginx 到nginx安装目录
cp ./objs/nginx /usr/local/nginx/sbin/
- 查看安装情况
/usr/local/nginx/sbin/nginx -V
5. 配置nginx.conf
vi /usr/local/nginx/conf/nginx.conf
server {
listen 80 ssl;
server_name 192.168.153.134;
ssl_certificate /usr/local/ssl/nginx.crt;
ssl_certificate_key /usr/local/ssl/nginx.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
#禁止在header中出现服务器版本,防止黑客利用版本漏洞攻击
server_tokens off;
#如果是全站 HTTPS 并且不考虑 HTTP 的话,可以加入 HSTS 告诉你的浏览器本网站全站加密,并且强制用 HTTPS 访问
fastcgi_param HTTPS on;
fastcgi_param HTTP_SCHEME https;
access_log logs/httpsaccess.log;
#charset koi8-r;
#access_log logs/host.access.log main;
}
- 重启Nginx
/usr/local/nginx/sbin/nginx -s reload
- 访问
https://192.168.153.134