Linux配置https服务

首先说明一点,并不是仅仅配置就可以使用真正的https服务,因为需要向证书颁发机构申请SSL证书

首先生成私钥和csr文件

切换到某个目录,在linux机器上执行以下命令生成私钥

openssl genrsa -out server.key 2048

然后在linux机器上执行以下命令生成csr文件

openssl req -new -key server.key -out certreq.csr

以下标识文字仅供参考,请根据商户自己实际情况进行填写

Country Name: CN                      //您所在国家的ISO标准代号,中国为CN

State or Province Name:beijing       //您单位所在地省/自治区/直辖市

Locality Name:beijing                //您单位所在地的市/县/区

Organization Name: liminghulian                //您单位/机构/企业合法的名称 

Organizational Unit Name: dev         //部门名称 

Common Name: www.liminghulian.com     //通用名,例如:www.liminghulian.com。此项必须与您访问提供SSL服务的服务器时所应用的域名完全匹配。

Email Address:                          //您的邮件地址,不必输入,直接回车跳过

"extra"attributes                        //以下信息不必输入,回车跳过直到命令执行完毕。

执行上面的命令后,在当前目录下即可生成私钥文件server.key和certreq.csr csr文件

以腾讯云的服务器作为参考

 

 

 

 

然后按要求把解析域名配置好,最后会得到以下界面

把证书下载下来会得到nginx中的两个文件如图

将这两个文件放到自己定义的目录,这里我放到的目录是  /https/ 

配置参考如下:

server {
    listen 443;
    server_name mobai.luomengyuan.cn;
    access_log /data/wwwlogs/access_nginx.log combined;
    root /data/wwwroot/mobaidanche/laravel/public;
    index index.html index.htm index.php;
    ssl on;    #开启ssl支持

    ssl_certificate      /https/1_mobai.luomengyuan.cn_bundle.crt;    #指定服务器证书路径

    ssl_certificate_key  /https/2_mobai.luomengyuan.cn.key;    #指定私钥证书路径

    ssl_session_timeout  5m;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;     #指定SSL服务器端支持的协议版本

    ssl_ciphers ECDHE-RSA-AES128-GCM- 
    SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;

    ssl_prefer_server_ciphers   on;
    location ~ [^/]\.php(/|$) {
      #fastcgi_pass remote_php_ip:9000;
      fastcgi_pass unix:/dev/shm/php-cgi.sock;
      fastcgi_index index.php;
      include fastcgi.conf;
      #pathinfo 支持开始  以上配置信息根据实际情况配置
      fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
      fastcgi_param PATH_INFO $fastcgi_path_info;
      fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
      #pathinfo 支持结束
   }
   location / {
                        #如果没有找到请求的文件
                       if (!-e $request_filename){
                            #rewrite ^(.*)$ /index.php?s=/$1 last;
                            #重写   正则匹配   重定向后的地址
                            rewrite ^(.*)$ /index.php/$1 last;
                        }
        }
}

做完以上工作后测试nginx配置文件无误后重新载入配置,如果需要配置通过http访问时自动跳转到https 可以在80端口对应的虚拟主机配置中设置

server {
    listen 80;
    server_name mobai.luomengyuan.cn; 
    rewrite ^(.*) https://mobai.luomengyuan.cn$1 permanent;
}

 

  • 6
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 Linux 上设置 HTTPS 服务器,可以按照以下步骤进行操作: 1. 获取 SSL 证书:在启用 HTTPS 之前,您需要获得 SSL 证书。您可以通过购买 SSL 证书或使用 Let's Encrypt 等免费 SSL 证书来获取。 2. 安装 Apache 或 Nginx:选择一种 Web 服务器软件,并按照相应的步骤进行安装。在 Ubuntu 或 Debian 上,您可以使用以下命令安装 Apache: ``` sudo apt-get update sudo apt-get install apache2 ``` 3. 安装 SSL 模块:安装 Web 服务器上的 SSL 模块,以启用 HTTPS 支持。在 Ubuntu 或 Debian 上,您可以使用以下命令安装 Apache 的 SSL 模块: ``` sudo apt-get install libapache2-mod-ssl ``` 如果您选择使用 Nginx,则需要使用以下命令安装 Nginx 的 SSL 模块: ``` sudo apt-get install nginx-extras ``` 4. 配置 SSL 证书:将 SSL 证书文件和密钥文件上传到服务器,并在 Web 服务配置文件中指定它们的位置。以下是 Apache 的示例配置: ``` <VirtualHost *:443> ServerName example.com SSLEngine on SSLCertificateFile /path/to/cert.crt SSLCertificateKeyFile /path/to/cert.key </VirtualHost> ``` 对于 Nginx,您需要在配置文件中添加以下内容: ``` server { listen 443 ssl; server_name example.com; ssl_certificate /path/to/cert.crt; ssl_certificate_key /path/to/cert.key; } ``` 5. 重启 Web 服务器:在修改配置文件后,需要重新启动 Web 服务器以使更改生效。在 Ubuntu 或 Debian 上,您可以使用以下命令重启 Apache: ``` sudo systemctl restart apache2 ``` 对于 Nginx,您可以使用以下命令: ``` sudo systemctl restart nginx ``` 完成这些步骤后,您的 Linux 服务器就可以提供 HTTPS 服务了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值