centos下使用nginx搭建https服务器

来源:互联网 发布:js正则判断是否为数字 编辑:程序博客网 时间:2024/05/22 04:34

HTTPS简介

HTTPS(Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单来讲就是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

它是一个URI scheme(抽象标识符体系),句法类同http:体系,用于安全的http数据传输。https使用的默认端口是443.

SSL证书

证书类型简介

要设置安全服务器,使用公共钥创建一对公私钥对。大多数情况下,发送证书请求(包括自己的公钥),你的公司证明材料以及费用到一个证书颁发机构(CA).CA验证证书请求及您的身份,然后将证书返回给您的安全服务器。

但是内网实现一个服务器端和客户端传输内容的加密,可以自己给自己颁发证书,只需要忽略掉浏览器不信任的警报即可!

由CA签署的证书为您的服务器提供两个重要的功能:

  • 浏览器会自动识别证书并且在不提示用户的情况下允许创建一个安全连接
  • 当一个CA生成一个签署过的证书,它为提供网页给浏览器的组织提供身份担保。
  • 多数支持ssl的web服务器都有一个CA列表,它们的证书会被自动接受。当一个浏览器遇到一个其授权CA并不在列表中的证书,浏览器将询问用户是否接受或拒绝连接
cd到目录

#cd /usr/local/nginx/conf

创建服务器私钥
#openssl genrsa -des3 -out server.key 1024

签名请求的证书
#openssl req -new -key server.key -out server.csr
注意此步骤过程中需要填写一系列的东西(公司名称、所在地等按照实际情况填)尤其注意 your server' hostname的填写,如果没有域名就直接填ip,如果有域名就填域名(都不需要端口号)
例如:
直接填ip:  192.168.10.223
域名: www.test.com
模糊域名:  * .test.com
具体步骤如下,谨做参考:
具体说明参考下面:

生成证书 
在服务器的命令行下进行如下操作 
①生成服务端的私钥,需要输入一个4~8191位的密码

openssl genrsa -des3 -out server.key 2048
  • 1
  • 1

②去除key文件的密码,这里需要输入①中填写的密码

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

③生成csr文件,这一步要求输入多种信息,可以全部按回车跳过

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

④生成crt文件,这一步中的-days后为有效期,可以写长一点

openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
  • 1
  • 1

⑤合并crt与key制作pem,用于后面生成cer以供客户端验证

cat server.crt server.key > server.pem
  • 1
  • 1

⑥用pem生成cer,cer文件存放在客户端用于验证

openssl x509 -in server.pem -outform der -out server.cer

制作解密后的私钥
#openssl rsa -in server.key -out server_nopwd.key
#openssl x509 -req -days 3650 -in server.csr -signkey server_nopwd.key -out server.crt
拷贝证书文件
# cp /usr/local/nginx/conf/server.crt /usr/local/nginx/html/

配置conf

server {

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

http强制跳转到https并开启http2

server
{
listen
443 ssl http2;
server_name  www.test
.com;
ssl_certificate /usr/local/nginx/conf/server.crt;
ssl_certificate_key /usr/local/nginx/conf/server_nopwd.key;
index index
.html index.htm index.php default.html default.htm default.php;
root
/home/wwwroot/cmsky.com;
include other
.conf;
#error_page 404 /404.html;
include enable
-php.conf;
location
~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires
30d;
}
location
~ .*\.(js|css)?$
{
expires
12h;
}
location
~ /\.
{
deny all;
}
access_log
off;
}
server
{
listen
81;
server_name cmsky
.com;
return 301 https://192.168.10.223$request_uri;
}

0 0
原创粉丝点击