利用nginx搭建https

生成证书

1.生成私钥

openssl genrsa -des3 -out server.key 2048

会有两次要求输入密码,输入同一个即可

然后你就获得了一个server.key文件. 以后使用此文件(通过openssl提供的命令或API)可能经常回要求输入密码,如果想去除输入密码的步骤可以使用以下命令:

openssl rsa -in server.key -out server.key

2.创建服务器证书的申请文件server.csr,运行:

openssl req -new -key server.key -out server.csr

其中Country Name填CN,Common Name填主机名也可以不填,如果不填浏览器会认为不安全.(例如你以后的url为https://abcd/xxxx....这里就可以填abcd),其他的都可以不填.

3.创建ca证书

openssl req -new -x509 -key server.key -out ca.crt -days 3650

此时,你可以得到一个ca.crt的证书,这个证书用来给自己的证书签名.

4.创建自当前日期起有效期为期十年的服务器证书server.crt:

openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key -CAcreateserial -out server.crt

5.ls你的文件夹,可以看到一共生成了5个文件:

ca.crt ca.srl server.crt server.csr server.key

其中,server.crt和server.key就是你的nginx需要的证书文件.

配置nginx

server {
  listen       443 ssl;
  server_name  localhost;


	#为一个server开启ssl支持
	ssl                  on;
 	#为虚拟主机指定pem格式的证书文件
	ssl_certificate      /home/wangzhengyi/ssl/wangzhengyi.crt;
	#为虚拟主机指定私钥文件
	ssl_certificate_key  /home/wangzhengyi/ssl/wangzhengyi_nopass.key;
	#客户端能够重复使用存储在缓存中的会话参数时间
	ssl_session_timeout  5m;
	#指定使用的ssl协议
	ssl_protocols  SSLv3 TLSv1;
	#指定许可的密码描述
	ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
	#SSLv3和TLSv1协议的服务器密码需求优先级高于客户端密码
	ssl_prefer_server_ciphers   on;
  location / {
       root   /usr/share/nginx/html;
       index  index.html index.htm;
   }
}

配置完后重新加载配置文件即可

遇到的坑: 配置完nginx后可能遇到SELinux权限问题
解决办法:
一、查看SELinux状态:

sestatus

如果SELinux status参数为enabled即为开启状态

二、关闭SELinux:

1、临时关闭(不用重启机器):

setenforce 0

2、永久关闭.修改配置文件需要重启机器:

修改/etc/selinux/config 文件

将SELINUX=enforcing改为SELINUX=disabled

重启机器即可

生成公钥给客户端(安卓、web...)

openssl rsa -in server.key -pubout -out server.pem

转载于:https://my.oschina.net/u/3628952/blog/1847263

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值