赞
踩
http:80
https:443 下边这种协议比http要安全,因为数据传输是经过加密的
当访问http://www.baidu.com的时候,访问的url会跳转到https://www.baidu.com
一.https简介
1.https其实是由两部分组成的:HTTP+SSL/ TLS,也就是在HTTP上有加了一层加密处理信息的模块。服务端和客户端信息传输都会通过TLS进行加密,所以传输的数据都是加密。具体时间如何进行加密,解密,验证的,且看下图
1.先安装依赖包
yum -y install porc-devel zlib-devel popt-devel openssl-devel openssl
2.创建nginx用户
useradd -M -s /sbin/nologin nginx
3.安装nginx
- wget http://nginx.org/download/nginx-1.20.2.tar.gz
- tar zxf nginx-1.20.2.tar.gz -C /usr/local/
- ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-file-aio --with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module --with-http_ssl_module --with-pcre && make && make install ##编译安装
- ln -s /usr/local/nginx/sbin/ /usr/local/bin/ ####软连接
4.生成证书:
- openssl genrsa -des3 -out server.key 1024 ###grnrsa生成证书 ####server.key证书的名字 ####1024字节
- Generating RSA private key, 1024 bit long modulus
- ....++++++
- ...........++++++
- e is 65537 (0x10001)
- Enter pass phrase for server.key: ####输入密码
- Verifying - Enter pass phrase for server.key: ####再次输入密码
5.创建一个证书申请:
- openssl req -new -key server.key -out server.key
- Enter pass phrase for server.key:
- 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]:BJ ##哪个国家
- State or Province Name (full name) []:BJ ##哪个市区
- Locality Name (eg, city) [Default City]:BJ ##默认城市
- Organization Name (eg, company) [Default Company Ltd]:BDGJ ##公司名称
- Organizational Unit Name (eg, section) []:IT ##单位名称
- Common Name (eg, your name or your server's hostname) []:www.benet.com ##服务器主机名等
- Email Address []:
- Please enter the following 'extra' attributes
- to be sent with your certificate request
- A challenge password []:
- An optional company name []:
其他默认回车
6.备份一份服务器密钥
cp server.key server.key.org
7.去除文件口令
- [root@localhost ~]# openssl rsa -in server.key.org -out server.keyEnter pass phrase for server.key.org: ##输入密码
- writing RSA key
8.生成证书文件
- [root@localhost ~]# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
- Signature ok
- subject=/C=BG/ST=BG/L=BG/O=BG/OU=qwe/CN=qwe/emailAddress=qwe
- Getting Private key
-
- ##证书以.crt结尾的
- ##x509是证书的格式
- ##-req 申请的意思
- ##-days 365 生效一年
- ##-in server.csr 指定证书申请文件
- ##-signkey server .key 指定私钥
- ##-out 输出证书文件
9.开始修改配置文件
- server {
- listen 443 default ssl; ##默认ssl
- ssl_certificate ssl/server.crt; ##指定证书文件
- ssl_certificate_key ssl/server.key; ##指定私钥文件
- #ssl on; ##nginx版本大>于1.15.就不用写
- server_name www.benet.com;
- location / {
- root html;
- index index.html index.htm;
- }
- }
10.创建目录mkdir -p /usr/local/nginx/conf/ssl
将证书与私钥放进去cp server.crt server.key /usr/local/nginx/conf/ssl
重启服务
11.但是访问http:的话会找不到网页,再写一个访问www.benet.com的时候全部都给https://
- server {
- listen 80;
- server_name www.benet.com;
- rewrite ^(.*) https://$host$1 permanent;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。