单台实现https

单台实现https

使用openssl命令充当CA权威机构创建证书(生产不使用此方式生成证书,不被互联网认可的黑户证书)

# 检查有没有ssl模块
[root@web03 ~]# nginx -V

--with-http_ssl_module 

# 创建证书和私钥存放地址
[root@web03 ~]# mkdir /etc/nginx/ssl
[root@web03 ~]# cd /etc/nginx/ssl
[root@web03 ssl]# data +%Y%m%d%H%M%S
-bash: data: command not found
[root@web03 ssl]# date +%Y%m%d%H%M%S
20200604112251
[root@web03 ssl]#  openssl genrsa -idea -out $(date +%Y%m%d%H%M%S).key 2048
Generating RSA private key, 2048 bit long modulus
.........................................+++
...+++
e is 65537 (0x10001)
Enter pass phrase for 20200604112307.key:
Verifying - Enter pass phrase for 20200604112307.key:
[root@web03 ssl]# ll
total 4
-rw-r--r-- 1 root root 1739 Jun  4 11:23 20200604112307.key
# 生成证书
[root@web03 ssl]#  openssl req -days 36500 -x509 \
> -sha256 -nodes -newkey rsa:2048 -keyout /etc/nginx/ssl/20200604112307.key -out /etc/nginx/ssl/20200604112307.crt
Generating a 2048 bit RSA private key
..........................+++
...........................................+++
writing new private key to '/etc/nginx/ssl/20200604112307.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]:cn
State or Province Name (full name) []:henan
Locality Name (eg, city) [Default City]:puyang
Organization Name (eg, company) [Default Company Ltd]:zaijia
Organizational Unit Name (eg, section) []:wan
Common Name (eg, your name or your server's hostname) []:wzh.com (这里要填写真实的域名)
Email Address []:123@qq.com
[root@web03 ssl]# ll
total 8
-rw-r--r-- 1 root root 1375 Jun  4 11:30 20200604112307.crt
-rw-r--r-- 1 root root 1704 Jun  4 11:30 20200604112307.key

# 命令参数
# req  --> 用于创建新的证书
# new  --> 表示创建的是新证书    
# x509 --> 表示定义证书的格式为标准格式
# key  --> 表示调用的私钥文件信息
# out  --> 表示输出证书文件信息
# days --> 表示证书的有效期



# 编辑nginx配置文件
[root@web03 nginx]# cat conf.d/blog.wzh.com.conf 
server {
        listen 80;
        server_name hhh.wzh.com;
        return 302 https://$server_name$request_uri;
}
server {
	listen 443 ssl;
	server_name hhh.wzh.com;
	ssl_certificate    /etc/nginx/ssl/20200604112307.crt;
        ssl_certificate_key /etc/nginx/ssl/20200604112307.key;

	location / {
		root /opt/wzh;
		index index.html;
	}
}

# 检测语法
nginx -t
# 重新加载
systemctl reload nginx
# 创建站点目录
[root@web03 nginx]# mkdir /opt/wzh
# 编辑nginx页面
[root@web03 nginx]# cat /opt/wzh/index.html 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>my website</title>
</head>
<body>
<article>
  <header>
    <h1>被钓鱼网站</h1>
    <p>创建时间:<time pubdate="pubdate">2020/6/4</time></p>
  </header>
  <p>
    <b>标题:</b>啥也不是
  </p>
  <footer>
    <p><small>改着玩呗</small></p>
  </footer>
</article>
</body>
</html>

# 域名解析
# 浏览器访问

posted @ 2020-07-23 17:18  王顺子  阅读(102)  评论(0编辑  收藏  举报