使用nginx搭建https服务器



最近在研究nginx,整好遇到一个需求就是希望服务器与客户端之间传输内容是加密的,防止中间监听泄露信息,但是去证书服务商那边申请证书又不合算,因为访问服务器的都是内部人士,所以自己给自己颁发证书,忽略掉浏览器的不信任警报即可。下面是颁发证书和配置过程。

首先确保机器上安装了openssl和openssl-devel

#yum install openssl
#yum install openssl-devel

然后就是自己颁发证书给自己

#cd /usr/local/nginx/conf
#openssl genrsa -des3 -out server.key 1024#openssl req -new -key server.key -out server.csr
#openssl rsa -in server.key -out server_nopwd.key
#openssl x509 -req -days 365 -in server.csr -signkey server_nopwd.key -out server.crt

至此证书已经生成完毕,下面就是配置nginx

server {
    listen 443;
    ssl on;
    ssl_certificate  /usr/local/nginx/conf/server.crt;
    ssl_certificate_key  /usr/local/nginx/conf/server_nopwd.key;
}

然后重启nginx即可。

ps: 如果出现“[emerg] 10464#0: unknown directive "ssl" in /usr/local/nginx-0.6.32/conf/nginx.conf:74”则说明没有将ssl模块编译进nginx,在configure的时候加上“--with-http_ssl_module”即可^^

至此已经完成了https服务器搭建,但如何让浏览器信任自己颁发的证书呢?

今天终于研究捣鼓出来了,只要将之前生成的server.crt文件导入到系统的证书管理器就行了,具体方法:

控制面板 -> Internet选项 -> 内容 -> 发行者 -> 受信任的根证书颁发机构 -> 导入 -》选择server.crt

原文地址

以上为原文,话说我是用在本地服务器的,然后偏偏又是windows+nginx+php,所以上面的当然不能照搬 了,windows下怎么安装ssl我也不记得了,这里直说跟配置https相关的。上面的两个yum是不需要执行了,也执行不了,然后呢是cd切换到nginx的conf文件夹下,然后执行openssl.exe,执行第一条openssl的语句,生产为签署的server.csr,一般应该没问题。执行过程中需要输入输入一系列的参数:

       Country Name (2 letter code) [AU]:CN ISO 国家代码(只支持两位字符)

       State or Province Name (full name) [Some-State]:ZJ 所在省份

        Locality Name (eg, city) []:HZ 所在城市

        Organization Name (eg, company): 公司名称

        Organizational Unit Name (eg, section) []: 组织名称

        Common Name (eg, YOUR name) []: 申请证书的域名(必须和httpd.conf中serverName必须一致)

        Email Address []:admin@admin.com 管理员邮箱

        Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: 交换密钥 

        An optional company name []: 

        注:Common Name必须和httpd.conf中serverName必须一致,否则apache不能启动(启动 apache 时错误提示为:server RSA certificate CommonName (CN) `Kedou' does NOT match server name!? )

        完成签署的server.csr配置。


执行第二条openssl的时候,可能会报错说找不到openssl.cnf,看清楚报错的文件路径,如果本地有这个文件直接复制到该报错路径下即可,如没有,请自行解决偷笑,我本地用的集成环境是phpStudy,在apache的配置文件夹下有这个文件,刚开始也只是试试看的心态,拿过来用,没成想真的能生成密钥文件server.key。

第二部解决之后后面就顺利了。

部分截图如下:




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值