Nginx本地开发环境配置ssl证书实现https访问

在开发环境中,通常web服务是本地部署的,因此不需要考虑网页加密问题,只需要配置http协议即可。然而,在某些项目中,如调试第三方回调功能时,必须使用https回调地址,因此需要在本地配置https。

由于ssl证书是自己颁发的,因此浏览器会显示证书不受信任的警告。不过,可以在本地设置信任证书,从而忽略浏览器的警告,实现https访问。

1. openssl 生成证书

 ➜  conf.d git:(production)mkdir ssl
 ➜  ssl git:(production)cd ssl
 ➜  ssl git:(production) ✗ openssl genrsa -out server.key 1024
 ➜  ssl git:(production) ✗ openssl req -new -key server.key -out server.csr
 ➜  ssl git:(production)cp server.key server.key.org
 ➜  ssl git:(production) ✗ openssl rsa -in server.key.org -out server.key
 ➜  ssl git:(production) ✗ openssl x509 -req -in server.csr -out server.crt -signkey server.key -days 3650
 ➜  ssl git:(production) ✗ ll
total 32
-rw-r--r--  1 55haitao  staff   753B Sep  2 15:04 server.crt
-rw-r--r--  1 55haitao  staff   603B Sep  2 15:03 server.csr
-rw-r--r--  1 55haitao  staff   887B Sep  2 15:04 server.key
-rw-r--r--  1 55haitao  staff   887B Sep  2 15:04 server.key.org

2. Nginx配置

server {
    listen          443 ssl;
    server_name     genes.dev.com;

    ssl_certificate      /etc/nginx/conf.d/ssl/server.crt;
    ssl_certificate_key  /etc/nginx/conf.d/ssl/server.key;

    root    /var/www/ogenes/Genes-Admin/public;
    index   index.html index.php;

    if (!-e $request_filename) {
        rewrite  ^(.*)$  /index.php?s=$1  last;
        break;
    }
    include /etc/nginx/conf.d/fpm/php81-fpm;
}

server {
  listen [::]:80;
  listen 80;

  server_name genes.dev.com;

  # redirect http to https www
  return 301 https://genes.dev.com$request_uri;
}

3. 重启Nginx, 然后访问

image-20220902150715511

发现证书无效。

4. 信任证书

用safari浏览器打开, 查看此证书, 拖动证书到桌面, 双击打开。

image-20220902151000455

image-20220902151023704

添加到钥匙串,然后在钥匙串找到证书, 选择 始终信任。

image-20220904173959558

image-20220902151146460

5. 测试

在 Safari

image-20220902151313835

​ 在 Chromeimage-20220902151349213

​ 点击继续前往即可

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 在Linux系统上搭建vsFTP服务器: - 首先安装vsFTP,执行以下命令: ``` sudo apt-get install vsftpd ``` - 然后修改vsFTP配置文件,执行以下命令: ``` sudo nano /etc/vsftpd.conf ``` 打开文件后,可以对配置文件进行修改。以下是一些常用的配置项: ``` anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=NO chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/private/vsftpd.pem ``` 其中,anonymous_enable表示是否允许匿名用户登录,local_enable表示是否允许本地用户登录,write_enable表示是否允许写权限,local_umask表示上传文件的默认权限,dirmessage_enable表示是否启用目录信息,use_localtime表示是否使用本地时间,xferlog_enable表示是否启用传输日志,connect_from_port_20表示是否使用20端口进行数据传输,chroot_local_user表示是否限制用户在家目录下访问,secure_chroot_dir表示chroot的目录,pam_service_name表示PAM服务名,rsa_cert_file表示SSL证书文件路径。 - 保存配置文件后重启vsFTP服务,执行以下命令: ``` sudo systemctl restart vsftpd ``` - 配置防火墙,允许FTP传输,执行以下命令: ``` sudo ufw allow 20/tcp sudo ufw allow 21/tcp sudo ufw allow 990/tcp sudo ufw allow 40000:50000/tcp sudo ufw enable ``` 这里开放的端口包括20端口(FTP命令端口)、21端口(FTP数据端口)、990端口(FTP SSL端口)以及40000到50000端口(被动模式端口范围)。 - 然后就可以进行FTP传输了。如果需要允许其他用户访问FTP服务器,可以创建FTP账号,并将其添加到vsFTP用户列表中。 2. 在Linux系统上搭建web服务器: - 搭建WordPress - 安装Apache服务器,执行以下命令: ``` sudo apt-get update sudo apt-get install apache2 ``` - 安装MySQL数据库,执行以下命令: ``` sudo apt-get install mysql-server ``` - 安装PHP,执行以下命令: ``` sudo apt-get install php libapache2-mod-php php-mysql ``` - 下载并解压WordPress,执行以下命令: ``` wget https://wordpress.org/latest.tar.gz tar -zxvf latest.tar.gz ``` - 将WordPress文件夹放到Apache的网站根目录下,执行以下命令: ``` sudo mv wordpress /var/www/html/ ``` - 修改WordPress配置文件,执行以下命令: ``` sudo mv /var/www/html/wordpress/wp-config-sample.php /var/www/html/wordpress/wp-config.php sudo nano /var/www/html/wordpress/wp-config.php ``` 打开文件后,修改以下部分: ``` define('DB_NAME', 'wordpress'); define('DB_USER', 'wordpressuser'); define('DB_PASSWORD', 'password'); ``` 其中,DB_NAME表示数据库名,DB_USER表示数据库用户名,DB_PASSWORD表示数据库密码。 - 在MySQL中创建WordPress数据库和用户,执行以下命令: ``` sudo mysql -u root -p CREATE DATABASE wordpress; GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; exit ``` - 修改文件夹权限,执行以下命令: ``` sudo chown -R www-data:www-data /var/www/html/wordpress/ sudo chmod -R 755 /var/www/html/wordpress/ ``` - 重启Apache服务器,执行以下命令: ``` sudo systemctl restart apache2 ``` - 在浏览器中输入IP地址或域名,就可以访问WordPress网站了。 - 搭建Nginx流媒体服务器 - 安装Nginx服务器,执行以下命令: ``` sudo apt-get update sudo apt-get install nginx ``` - 安装FFmpeg,执行以下命令: ``` sudo apt-get install ffmpeg ``` - 修改Nginx配置文件,执行以下命令: ``` sudo nano /etc/nginx/nginx.conf ``` 打开文件后,在http块中添加以下内容: ``` http { ... server { listen 1935; chunk_size 4096; application live { live on; record off; } } } ``` 这里的配置将Nginx监听1935端口,使用chunk_size为4096,配置了一个名为live的应用,开启了直播功能。 - 保存配置文件后,重启Nginx服务器,执行以下命令: ``` sudo systemctl restart nginx ``` - 推送流媒体到Nginx服务器,执行以下命令: ``` ffmpeg -re -i input.mp4 -vcodec copy -acodec copy -f flv rtmp://your-nginx-server-ip:1935/live/stream_name ``` 这里的input.mp4表示要推送的视频文件,your-nginx-server-ip表示Nginx服务器的IP地址,stream_name表示流媒体名称。 - 在浏览器中输入rtmp://your-nginx-server-ip:1935/live/stream_name,就可以访问流媒体了。 - 搭建生产环境 - 安装Nginx服务器,执行以下命令: ``` sudo apt-get update sudo apt-get install nginx ``` - 安装PHP,执行以下命令: ``` sudo apt-get install php-fpm ``` - 修改Nginx配置文件,执行以下命令: ``` sudo nano /etc/nginx/sites-available/default ``` 打开文件后,修改以下部分: ``` server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.html index.htm index.php; server_name _; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.2-fpm.sock; } location ~ /\.ht { deny all; } } ``` 这里的配置将Nginx监听80端口,使用/var/www/html作为网站根目录,支持PHP解析。 - 重启Nginx服务器并启动PHP-FPM,执行以下命令: ``` sudo systemctl restart nginx sudo systemctl start php7.2-fpm ``` - 在网站根目录下创建一个PHP文件,执行以下命令: ``` sudo nano /var/www/html/index.php ``` 打开文件后,输入以下内容: ``` <?php phpinfo(); ``` - 在浏览器中输入IP地址或域名,就可以访问PHP信息了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值