Moeyuuko's blog

  • 首页
    • blog博客首页
    • www导航主页
    • My Github
    • ADS-B 飞机信号接收
  • git
    • Github
    • 私人Gogs
  • 服务
    • Gogs
    • 剪切板
    • 二维码生成
    • 萌盘
    • 萌盘[旧]
    • KMS server
  • 图片
  • MC
    • Minecraft 服务器
    • 明月乡
  • 友链
  • 其他
    • 常用软件
    • 投食
得閒飲茶
when free, drink drink tea.
  1. 首页
  2. 主要文章
  3. 笔记
  4. 正文

启用网站的https访问

2018年4月14日 2586点热度 3人点赞 0条评论
文章可能过时

Apache开启SSL/https的过程

启用Apache SSL模块

a2enmod ssl

默认的Apache网站提供了一个启用SSL的有用模板

a2ensite default-ssl

重新启动Apache以使这些更改生效

service apache2 reload

===购买了证书的跳过生成步骤===

生成私钥

使用openssl工具生成一个RSA私钥


nbsp;openssl genrsa -des3 -out server.key 2048

说明:生成rsa私钥,des3算法,2048位强度,server.key是秘钥文件名。
注意:生成私钥,需要提供一个至少4位的密码。

生成CSR(证书签名请求)

生成私钥之后,便可以创建csr文件了。
此时可以有两种选择。理想情况下,可以将证书发送给证书颁发机构(CA),CA验证过请求者的身份之后,会出具签名证书(很贵)。
另外,如果只是内部或者测试需求,也可以使用OpenSSL实现自签名,具体操作如下


nbsp;openssl req -new -key server.key -out server.csr

说明:需要依次输入国家,地区,城市,组织,组织单位,Common Name和Email
其中Common Name,可以写自己的名字或者域名
如果要支持https,Common Name应该与域名保持一致,否则会引起浏览器警告Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:

生成自签名证书

如果你不想花钱让CA签名,或者只是测试SSL的具体实现。那么,现在便可以着手生成一个自签名的证书了。

需要注意的是,在使用自签名的临时证书时,浏览器会提示证书的颁发机构是未知的。


nbsp;openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

说明:crt上有证书持有人的信息,持有人的公钥,以及签署者的签名等信息。当用户安装了证书之后,便意味着信任了这份证书,同时拥有了其中的公钥。证书上会说明用途,例如服务器认证,客户端认证,或者签署其他证书。当系统收到一份新的证书的时候,证书会说明,是由谁签署的。如果这个签署者确实可以签署其他证书,并且收到证书上的签名和签署者的公钥可以对上的时候,系统就自动信任新的证书。

=====下面继续 进行证书路径指定=======

000-default.conf   #http服务器配置文件

default-ssl.conf      #https服务器配置文件

配置Apache以使用SSL

/etc/apache2/sites-enabled/default-ssl.conf

里面的注释希望你看一看  写得很清楚 每一行是干什么的    例如:错误日志呀 普通日志呀  端口呀  域名呀  脑子变通一下

nano /etc/apache2/sites-enabled/default-ssl.conf

到开头的部分<VirtualHost _default_:443>并进行以下修改。

ServerAdmin webmaster@localhost    #网站管理员邮箱
ServerName blog.moeyuuko.top:443    #域名

SSLCertificateFile /etc/apache2/ssl/apache.crt        #.crt路径
SSLCertificateKeyFile /etc/apache2/ssl/apache.key     #.key路径

SSLCACertificatePath /etc/apache2/ssl/                #ca.crt证书目录
SSLCACertificateFile /etc/apache2/ssl/apache.key      #ca.crt证书路径

进行这些更改后,请检查配置文件是否与以下内容匹配。

/ etc / apache2 / sites-enabled / default-ssl

<IfModule mod_ssl.c>
    <VirtualHost _default_:443>
        ServerAdmin webmaster@localhost
        ServerName example.com:443
        DocumentRoot /var/www/html

        . . .
        SSLEngine on

        . . .

        SSLCertificateFile /etc/apache2/ssl/apache.crt
        SSLCertificateKeyFile /etc/apache2/ssl/apache.key

        SSLCACertificatePath /etc/apache2/ssl/
        SSLCACertificateFile /etc/apache2/ssl/apache.key

保存并退出文件。

重新启动Apache以应用更改。

service apache2 reload

设置重定向规则--http跳转到https

注意: 如果没有启用rewrite的 使用命令 a2enmod rewrite 启用

然后修改 /etc/apache2/apache2.conf 配置文件

<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All    #None改成All
Require all granted
</Directory>

最后 重启apache2

编辑器打开.htaccess文件,写入如下规则:

RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$ [NC]
RewriteCond %{REQUEST_URI} !^/tz.php    ##这行是排除,可删除,举例子而已
RewriteRule (.*) https://%{SERVER_NAME}/$1 [L]

解释:

%{SERVER_PORT} ##访问端口
%{REQUEST_URI} ##比如如果url是 http://localhost/tz.php,则是指 /tz.php
%{SERVER_NAME} ##比如如果url是 http://localhost/tz.php,则是指 localhost
以上规则的意思是,如果访问的url的端口不是443,且访问页面不是tz.php,则应用RewriteRule这条规则。这样便实现了:

访问了 http://localhost/index.php 或者 http://localhost/admin/index.php

等页面的时候会自动跳转到 https://localhost/index.php 或者 https://localhost/admin/index.php

但是访问 http://localhost/tz.php 的时候就不会做任何跳转 
[你可以把他删掉]

也就是说 http://localhost/tz.php 和 https://localhost/tz.php 两个地址都可以访问
本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 教程
最后更新:2022年4月2日

Moeyuuko

等,等灯,等灯

点赞
< 上一篇
下一篇 >

Moeyuuko

等,等灯,等灯

文章目录
  • Apache开启SSL/https的过程
  • ===购买了证书的跳过生成步骤===
    • 生成私钥
    • 生成CSR(证书签名请求)
    • 生成自签名证书
  • =====下面继续 进行证书路径指定=======
    • 配置Apache以使用SSL
    • 设置重定向规则--http跳转到https
最新 热点 随机
最新 热点 随机
Proxmox网桥通过SLAAC配置公网ipv6地址 OculusClient 无法启动问题 SlimeVR 全身追踪 PCB与外壳 如何选择开源许可证 Gravatar头像镜像 Centos stream 替换国内源
Centos stream 替换国内源 SlimeVR 全身追踪 PCB与外壳 简单开启linux服务器的Swap虚拟内存 openwrt x86 虚拟机镜像下载 OculusClient 无法启动问题 whiptail指令-交互式shell脚本对话框

COPYRIGHT © 2022 Moeyuuko's blog. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

粤ICP备2021029098号-1

粤公网安备44010502003447号