在LNMP环境下安装测试HTTPS及其问题

由于现在HTTPS网站已经成为主流,所以今天在我的LNMP环境下测试了一下自建的SSL证书的使用。由于是自己建的CA以及密钥,所以一般的浏览器是不会认为安全,想要让主流浏览器认为安全,还是要花钱到认证机构去申请证书。

以下是我的配置步骤以及碰到的一个问题。

HTTPS简介

https就是在http的基础上使用了ssl加密验证,使网络传输更安全。

1.LNMP环境

[[email protected] sslkey]# /application/nginx/sbin/nginx -V

nginx version: nginx/1.6.3

built by gcc 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC)

TLS SNI support enabled

configure arguments: --user=nginx --group=nginx --prefix=/application/nginx1.6.3 --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module

注:由于需要配置https,所以nginx在编译的时候需要加上--with-http_stub_status_module --with-http_ssl_module这两个参数。

--with-http_stub_status_module  启用nginx的NginxStatus 功能,用来监控nginx的当前状态

--with-http_ssl_module  使nginx支持ssl模块

2.安装openssl

openssl是一个可以为我们创建证书和密钥的工具。

[[email protected] ~]# yum install -y openssl openssl-devel

3.生成密钥server.key

#创建一个存放证书和密钥的文件夹sslkey

[[email protected] ~]# mkdir /application/nginx/sslkey

[[email protected] ~]# cd /application/nginx/sslkey/

#生成一个供服务器使用的密钥

[[email protected] nginx]# openssl genrsa -out server.key

Generating RSA private key, 1024 bit long modulus

.................................++++++

.........................++++++

e is 65537 (0x10001)

[[email protected] sslkey]# ll server.key

-rw-r--r--. 1 root root 887 Dec 17 11:07 server.key

4.申请一个证书server.crt

#生成证书请求文件server.scr

[[email protected] sslkey]# openssl req -new -key server.key -out server.scr

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter ‘.‘, the field will be left blank.

-----

Country Name (2 letter code) [XX]:cn #国家

State or Province Name (full name) []:sh #省市

Locality Name (eg, city) [Default City]:sh #城市

Organization Name (eg, company) [Default Company Ltd]:sh #组织名称

Organizational Unit Name (eg, section) []:sh #部门名称

Common Name (eg, your name or your server‘s hostname) []:ssl.etiantian.org #域名

Email Address []:[email protected] #邮箱

Please enter the following ‘extra‘ attributes

to be sent with your certificate request

A challenge password []:111111 #密码

An optional company name []:111111 #可选

#生成证书文件server.crt

#[[email protected] sslkey]# openssl rsa -in server.key -out server.nopass.key

#writing RSA key

[[email protected] sslkey]# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Signature ok

subject=/C=cn/ST=sh/L=sh/O=sh/OU=sh/CN=ssl.etiantian.org/[email protected]

Getting Private key

#查看证书文件

[[email protected] sslkey]# ll

total 16

-rw-r--r--. 1 root root 912 Dec 17 11:38 server.crt #证书

-rw-r--r--. 1 root root 745 Dec 17 11:13 server.csr

-rw-r--r--. 1 root root 887 Dec 17 11:07 server.key #密钥

-rw-r--r--. 1 root root 887 Dec 17 11:35 server.nopass.key

5.配置nginx的主配置文件nginx.conf

#配置一个虚拟主机使用https

server{

listen 443;

server_name ssl.etiantian.org;

ssl on;

ssl_certificate /application/nginx1.6.3/sslkey/server.crt;

ssl_certificate_key /application/nginx1.6.3/sslkey/server.key;

ssl_session_timeout 5m;

ssl_protocols SSLv3 TLSv1;

ssl_ciphers HIGH:!ADH:!EXPORT56:RC4+RSA:+MEDIUM;

ssl_prefer_server_ciphers on;

location / {

root html/ssl;

index index.html index.htm;

}

}

6.重启nginx

[[email protected] sslkey]# /application/nginx/sbin/nginx -t

nginx: the configuration file /application/nginx1.6.3/conf/nginx.conf syntax is ok

nginx: configuration file /application/nginx1.6.3/conf/nginx.conf test is successful

[[email protected] sslkey]# /application/nginx/sbin/nginx -s reload

7.配置hosts文件

192.168.137.220    ssl.etiantian.org

8.测试

#在浏览器中输入https://ssl.etiantian.org

9.碰到的问题

配置好后,检查nginx语法的时候报错。

[[email protected] sslkey]# /application/nginx/sbin/nginx -t

nginx: [emerg] PEM_read_bio_X509_AUX("/application/nginx/sslkey/server.crt") failed (SSL: error:0906D06C:PEM routines:PEM_read_bio:no start line:Expecting: TRUSTED CERTIFICATE)

nginx: configuration file /application/nginx1.6.3/conf/nginx.conf test failed

经过在网络搜索,但是没有解决我的问题。后来参考了一篇博客才解决了。

参考博文:http://blog.sina.com.cn/s/blog_4f925fc30102eucg.html

解决问题:

由于之前生成证书的时候,步骤错误导致的:

[[email protected] sslkey]# openssl req -new -keyserver.key -out server.crt

正确步骤是:

[[email protected] sslkey]# openssl req -new -keyserver.key -out server.csr

[[email protected] sslkey]# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

时间: 2024-08-24 16:08:37

在LNMP环境下安装测试HTTPS及其问题的相关文章

LNMP环境下安装zabbix3.2.11

LNMP环境下安装zabbix3.2.11安装环境:centos6.5zabbix_server:192.168.100.3zabbix_agent:192.168.100.4 1.安装前准备工作1.确保服务器可以连接外网或者能下载相应的软件包即可.nginx安装官网下载地址: http://nginx.orgphp安装官网下载地址: http://php.netmysql安装官网下载地址:https://dev.mysql.com/downloads/mysql/zabbix安装官网下载地址:

LNMP环境下安装freeradius+radius manager3.9

1.安装web环境,使用LNMP一键安装包具体安装步骤参考https://lnmp.org/install.html 2.安装完成后,安装LNMP缺少的组件ionCube组件安装进入lnmp解压后的目录,执行:./addons.sh install ionCube 回车确认后就会自动安装ionCube loader. yum install perl-DBI yum freeradius-mysql freeradius-utils 3.安装FreeRadiuswget http://www.d

Ubuntu系统LNMP环境下安装配置zabbix3.0

Ubuntu 14.04(LNMP)安装配置Zabbix 3.0,LNMP安装你可以参考我上一篇博文<ubuntu安装配置LNMP> 添加zabbix3.0的源 可以根据自己工作需求选择zabbix版本 # wget http://repo.zabbix.com/zabbix/3.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.0-1+trusty_all.deb # dpkg -i zabbix-release_3.0-1+trust

解决LNMP环境下连接不上mysql的问题

LNMP环境下 远程连接mysql数据库 一.为了安全起见,lnmp环境是禁止远程连接的,他会删除iptables里面的3306端口的防火墙规则 一.如果是phpmydmin  那要把权限里要远程连接的用户主机改成 * 参考:https://bbs.vpser.net/thread-3135-1-1.html 或者mysql -uroot -p  输入密码 use mysql;update user set host = '%' where user='root'; flush privileg

LNMP环境的安装

lnmp环境的安装 1.对静态网页的支持比较好 2.配置简单 3.性能,比apache高3倍以上 4.支持更大的并发连接数 安装前准备 关闭防火墙chkconfig iptables off 关闭selinux chkconfig selinux off 1.安装pcre(支持正则表达式) 直接使用yum安装 yum -y install pcre-devel-7.8-6.el6.i686.rpm 如图所示表示安装成功 2.安装zlib支持压缩 yum -y install zlib-devel

lnmp环境下搭建wordpress博客程序

本文档主要介绍如何在lnmp环境下搭建完整的wordpress程序. 基本流程: 1.开源博客程序WordPress介绍 2.WordPress博客程序的搭建准备 3.开始安装blog博客程序 4.实现WordPress博客程序URL静态化 ---------------------------------------------------------------------------------------------------------------------------------

在linux环境下安装redis并且搭建自己的redis集群

此文档主要介绍在linux环境下安装redis并且搭建自己的redis集群 搭建环境: ubuntun 16.04 + redis-3.0.6 本文章分为三个部分:redis安装.搭建redis集群 一.本机安装redis: 1.下载redis: wget http://download.redis.io/releases/redis-3.0.6.tar.gz 2.redis安装解压.编译与安装:安装路径在root用户下的:~/softwares文件下 解压:先将安装包放到~/softwares

从零开始Windows环境下安装python+tensorflow

从零开始Windows环境下安装python+tensorflow 2017年07月12日 02:30:47 qq_16257817 阅读数:29173 标签: windowspython机器学习tensorflowAnaconda 更多 个人分类: machine-learning 前言 安装环境 tensorflow Anaconda 安装步骤 1.安装Anaconda 2.安装tensorflow 3.测试是否安装成功 总结 前言 本文介绍在Windows平台下,使用Anoconda简单安

ElasticHD Linux环境下安装

上一篇讲了ElasticHD windows环境下安装,这一篇继续说明ElasticHD Linux环境下安装,有了安装windows版本下错版本的经验,这次我们直接定位到程序下载页面,选择对应的系统版本,我这次安装的是Cetos 7 64位系统: 打开Xshell,连接到Linux系统中: 第一步:我们来下载程序压缩包,先打开下载地址页(上一篇中有地址),然后选择需要下载的版本,复制下载地址,然后用命令下载: wget https://github.com/360EntSecGroup-Sky