使用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。

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

部分截图如下:




本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/414263.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分布式配置中心阿波罗的搭建与客户端的应用

为了统一管理微服务配置文件,实现动态化刷新配置文件,常见的两种方式为阿波罗、SpringCloudConfig,关于两者主要区别是: 阿波罗配置文件存放在数据库中,SpringCloudConfig存放在Git里面 一、搭建过程 本篇主要演示阿波…

PHP攻击防御

原文地址 有个朋友网站被攻击,刚好我们的网站有比较全面的攻击防御,了解了一下自己网站的防御,再上网搜了一些文章来看,觉得上面的文章写得很全面,特此备份。留着以后自己忘记的时候看看。

毕业一年的大专生程序员工作总结(java后台)

文章导读 一、回眸过去 – 闲扯的话 – 零碎的技术二、经验总结 – 沟通交流 – 贵在坚持 – 合理规划三、展望未来 – 积累行业背景 – 学习清单四、最后补充 一、 回牟过去 1、闲扯的话 大专生毕业一年工作总结,谈不上予人借鉴,算是对自己过去一年…

mysql自带加密解密字符集问题

由于公司业务需要,需要对已有的数据进行加密, 由于数据加密之后需要可逆的解密,最先考虑使用encode,decode函数;在实际使用的过程遇到加密数据解密之后得不到原本的值,后发现是由于字符集不正确&#xff0c…

重温类加载机制

前言 我们在学习 java 基础的时候,从宏观上了解一个类到运行大致是:.java 文件通过 javac 编译器编译得到 .class 文件,在用到该类时,jvm 会加载该 class 文件,并创建对应的 class 对象,将 class 文件加载…

微信团队分享:微信移动端的全文检索多音字问题解决方案

本文来自微信开发团队WeMobileDev公众号的技术分享。 1、前言 微信的移动客户端全文搜索中的多音字问题一直是搜索体验的痛点之一。微信客户端全文搜索在上线以后,也经常收到用户关于多音字问题的反馈。所以,微信全文搜索中的多音字搜索成了一个迫切需要…

PHP编译不成功

早上开机的时候运行本地网站,蹦出一个error: ERROR:syntax error, unexpected 92 (T_CONSTANT_ENCAPSED_STRING), expectin懵,昨天下班前不是还好好的吗(其实我不知道下班前是不是好好的,因为下班前没跑程序好尴尬)&am…

201571030128/201571030118《小学四则运算练习软件软件需求说明》结对项目报告

一、以实验二个人项目、实验三结对项目所开发的小学生四则运算练习软件作为原型,实施小学生四则运算练习软件用户调研活动具体过程。 1、真实的调研对象 对象性别年龄身份刘老师女23小学数学实习老师杨同学男12小学五年级学生杨家长女35杨同学的家长何老师男24小学数…

QQ互联登陆(Java)

一、准备部分 1、账户注册 腾讯开放平台网址: https://connect.qq.com/index.html 首先需要到开放平台注册QQ互联开发者身份。注册之后创建一个网站应用,注意,需要备案成功的域名才可申请。 2、应用审核 审核通过后如下图所示,审核通过后可以…

动静分离-静态资源缓存控制

一、静态资源服务与动态资源服务的区别 首先动静分离非前后端分离,关于两者的介绍如下: 动静分离:动态资源(jsp、ftl)与静态资源(js、img、css)分开前后端分离:接口与视图分开独立开发部署二、为什么静态资源需要实现CDN内容加速 …

分布式session共享

一、前言 为什么会出现session共享问题? 客户端与服务器交互时会产生唯一的sessionid用于标记用户,但是在分布式架构中,如果还是采用 session 的方式,用户发起请求,通过 nginx 做请求转发时,并不知道是转发…

InnoDB锁问题

InnoDB锁问题 InnoDB与MyISAM的最大不同有两点:一是支持事务(TRANSACTION);二是采用了行级锁。行级锁与表级锁本来就有许多不同之处,另外,事务的引入也带来了一些新问题。下面我们先介绍一点背景知识&#…

phpsduty环境下,使用composer安装报错

1.首先要下载composer进行安装 点击下载 ,最新的composer要求的php版本都比较高,安装之后,将composer的安装路径加入环境变量,我的参考路径:D:\composer; 2.我的环境使用的php版本是php7.0.12-nts&#xf…