Linux服务之nginx服务篇四(配置https协议访问)
一、配置nginx支持https协议访问
编译安装nginx的时候需要添加相应的模块--with-http_ssl_module和--with-http_gzip_static_module(可通过/usr/local/nginx/sbin/nginx -V来查看nginx编译参数)
(yum安装不需要)
二、防火墙开启https协议默认端口443
1、vi /etc/sysconfig/iptables #编辑防火墙配置文件,添加以下代码:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT :wq! #保存退出 service iptables restart #重启防火墙
2、或者使用firewall-cmd添加防火墙规则
firewall-cmd --add-port=443/tcp firewall-cmd --add-port=443/tcp --permanent
三、创建https证书
确保机器上安装了OpenSSL和openssl-devel
yum install openssl openssl-devel #CentOS使用yum命令安装 mkdir /etc/nginx/ssl #创建证书存放目录 cd /etc/nginx/ssl #进入目录 创建服务器私钥: openssl genrsa -des3 -out server.key 1024 #根据提示输入证书口令(ryz123) 创建签名请求的证书(CSR): openssl req -new -key server.key -out server.csr #输入上面设置的口令(ryz123) #根据提示输入相应的信息 Country Name (2 letter code) [XX]:cn #国家 State or Province Name (full name) []:shanxi #省份 Locality Name (eg, city) [Default City]:taiyuan #城市 Organization Name (eg, company) [Default Company Ltd]:3344 #公司 Organizational Unit Name (eg, section) []:yunwei #部门 Common Name (eg, your name or your server's hostname) []:3344 #主机名称 Email Address []:[email protected] #邮箱 Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:123456 #证书请求密钥,CA读取证书的时候需要输入密码 An optional company name []:3344 #公司名称,CA读取证书的时候需要输入密码 openssl rsa -in server.key -out server_nopassword.key #对key进行解密 openssl x509 -req -days 365 -in server.csr -signkey server_nopassword.key -out server.crt #标记证书使用上述私钥(ryz123)和CSR [root@s2 ssl]# ls server.crt server.csr server.key server_nopassword.key [root@s2 ssl]# pwd /etc/nginx/ssl
四、修改nginx的配置文件,网站添加安全验证(https)
server { listen 80; server_name www.3344.com; location / { rewrite ^(.*)$ https://$host$1 permanent; #把http协议重定向到https上面 } } server { listen 443 ssl; server_name www.3344.com; ssl_certificate "/etc/nginx/ssl/server.crt"; ssl_certificate_key "/etc/nginx/ssl/server_nopassword.key";
fastcgi_param HTTPS $https if_not_empty; #有https协议时自动使用https,否则忽略这个参数。 root /var/www/html; }
Linux下nginx配置https协议访问如上。