最新文章:

首页 运维技术

Linux+Nginx/Apache/Tomcat新增SSL证书,开启https访问教程

发布时间:2015年05月23日 评论数:抢沙发 阅读数:1498

    上上篇文章《nginx平滑升级&新增模块》提到了公司的https访问需求。当我新增了SSL模块之后,却发现以前还真没部署过https访问。

    下面整理我的部署过程,并收集了一下Apache和Tomcat这2种Linux下常用的WEB软件配置SSL的简单简单步骤,以便回头翻阅。

    一、下载证书

    成功申请SSL证书之后,就可以下载到配置SSL的证书了!一般情况下,都可以选择下载相应WEB服务器的不同证书,或者直接打包下载主流WEB服务器的证书,如图所示:

    下载后,就可以根据不同的WEB服务器来选择相应的证书了。

    二、Nginx

    先确认nginx安装时已编译http_ssl模块,也就是执行如下命令查看是否存在--with-http_ssl_module参数:

    如果没有这个参数,说明没有编译SSL模块,那么请参考上上篇文章自行解决,此处就不赘述了。

    ①、准备证书

    Nginx需要用到2个证书文件:

    I.  证书公钥 (crt格式)

    II. 证书私钥(key格式)

    拿到证书后,将其上传到nginx下的ssl目录(也可自定义位置)。

    ②、修改配置

    A. http和https全局共存

    在原server模块新增监听443端口,然后新增如下代码(具体看注释)。

    保存配置之后,先执行如下命令测试配置是否正确:

    确认无误之后,执行如下命令重载nginx,让配置生效:

    如无错误,现在应该可以顺利访问https://yourdomain.com/了!值得说明的是,这样配置后,http和https是全局共存的,你能http访问到的页面,https也可以访问得到。

    B. 全局强制https

    如果是全局https访问,那么额外写一个监听80的server,让http访问跳转到https上即可,下面是参考模板:

    C. 部分强制https,部分强制http

    可能有部分强迫症会有这样的需求:我只要部分页面强制https访问,比如后台及登陆页面,其他常规页面强制http访问,我该如何设置?

    思路:和B方案一样,分别2个server模块,并新增判断规则,指定部分页面http访问,部分页面https访问。

    具体可以参考一下张戈博客的配置主要修改中文注释部分,其他配置保持不变):

    二、Apache

    同样,先确认Apache安装时已添加SSL支持模块。如果没有请自行搜索搞定,本文不再赘述。

    ①、准备证书

    Apache需要用到三个证书文件:

    I. 根证书:root_bundle.crt

    II. 证书公钥:yourdomain.com.crt

    III. 证书私钥:yourdomain.com.key

    将下载好的三个证书文件,上传到apache下的ssl目录中(可自定义位置)。

    ②、修改配置

    I. 编辑httpd.conf文件,取消以下内容的#注释符号:

    II. 编辑http-ssl.conf文件,如下修改:

    III. 保存退出,并重启Apache即可。

    三、Tomcat

    ①、准备证书

    Tomcat只需要用到一个jks格式的证书文件,比如yourdomain.com.jks。

    拿到文件后,将其上传到Tomcat下的conf目录中。

    ②、修改配置

    打开conf目录下的server.xml文件,找到以下内容:

    去掉前后的注释,并如下修改(或者直接其后添加以下代码亦可):

    退出并保存,最后重启Tomcat即可。

    四、解决警告

    如果网页中存在不带https的资源,比如http协议的js、css或图片,那么访问这个https页面,某些浏览器(比如IE)就会发出警告,提示页面中存在不安全的内容,并且不会加载这些http协议的资源,导致页面错乱等问题:

    解决办法:

    方法①、使用相对地址

    只要将这些http的资源链接,改为相对地址。比如原链接是<img src="http://yourdomain.com/images/demo.png" alt="Linux+Nginx/Apache/Tomcat新增SSL证书,开启https访问教程">那么改成<img src="/images/demo.png" alt="Linux+Nginx/Apache/Tomcat新增SSL证书,开启https访问教程">即可。

    方法②、修改网站代码

    如果是全局https访问,那么你将网站代码中的链接均改为https好了。如果是http和https混合的,那么准备2套网站文件也行。然后在nginx当中设置不同的root路径。

    为了省事,我推荐方法①。

    好了,本文就写到这,希望能解您的燃眉之急!

二维码加载中...
本文作者:Mr.linus      文章标题: Linux+Nginx/Apache/Tomcat新增SSL证书,开启https访问教程
本文地址:http://www.90qj.com/87  本文已经被百度收录,点击查看详情
版权声明:若无注明,本文皆为“挨踢 Blog”原创,转载请保留文章出处。
挤眼 亲亲 咆哮 开心 想想 可怜 糗大了 委屈 哈哈 小声点 右哼哼 左哼哼 疑问 坏笑 赚钱啦 悲伤 耍酷 勾引 厉害 握手 耶 嘻嘻 害羞 鼓掌 馋嘴 抓狂 抱抱 围观 威武 给力
提交评论

清空信息
关闭评论