1. 环境准备
1.1 软件安装
nginx安装编译安装以及配置https,需要gcc-c++ pcre-devel openssl openssl-devel
软件。因此需要先安装相关软件。
yum -y install gcc-c++ pcre-devel openssl openssl-devel wget
openssl/openssl-devel:主要用于nginx编译的
http_ssl_module
模块安装以及证书的生成。
1.2 安装包下载
wget http://nginx.org/download/nginx-1.25.1.tar.gz
2. nginx软件编译
依次执行如下命令:
-
解压压缩包
tar -zxvf nginx-1.25.1.tar.gz
-
执行属性配置
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
http_ssl_module:支持配置https模块
–prefix=/usr/local/nginx:表示nginx最终辉安装到/usr/local/nginx
目录下 -
编译并且安装
make && make install
3. 测试nginx编译是否成功
/usr/local/nginx/sbin/nginx
/usr/local/nginx:这个路径是在步骤
执行属性配置
部分配置的路径。
http://192.168.10.100/
4 生成证书
4.1 生成私钥
在这个过程中会输入一个密码,我们暂时记住这个密码,后面会取消。我们可以进入nginx安装路面/usr/local/nginx
,创建ssl
的文件夹,在这里执行如下命令:
openssl genrsa -des3 -out server.key 2048
4.2 生成CSR
CSR,(Certificate Signing Request 证书签名请求 )
openssl req -new -key server.key -out server.csr
在此期间,Comm Name可以填写一下域名,其他可以忽略不填。
4.3 取消私钥当中的密码
openssl rsa -in server.key -out server.key
4.4 生成自签名SSL证书
openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
4.5 查看证书生成情况
[root@localhost ssl]# pwd
/usr/local/nginx/ssl
[root@localhost ssl]# ll
总用量 12
-rw-r--r--. 1 root root 1159 8月 8 01:56 server.crt
-rw-r--r--. 1 root root 985 8月 8 01:54 server.csr
-rw-r--r--. 1 root root 1679 8月 8 01:55 server.key
5 nginx配置https
在nginx.conf配置如下代码:
server {
listen 443 ssl;
server_name greateme.com;
ssl_certificate /usr/local/nginx/ssl/server.crt;
ssl_certificate_key /usr/local/nginx/ssl/server.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
重新加载配置文件
/usr/local/nginx/sbin/nginx -s reload
6 验证配置是否成功