linux系统 在Apache服务器上安装SSL证书

by 少年2021-01-15
  • 1 赞
  • 1 收藏
  • 技术
  • 0 评论
  • 133 阅读
© 本文 by 少年 版权所有,作者未对本笔记声明转载限制,转载时请注明本文标题和链接。
笔记

linux系统 在Apache服务器上安装SSL证书,首先检测是否安装了mod_ssl模块

rpm -qa | grep mod_ssl

如果安装就不需要再次安装,未安装的话直接执行下行命令,安装mod_ssl模块

yum install -y mod_ssl

安装完成后修改Apache配置文件

vim /etc/httpd/conf/httpd.conf

当然你也可以把配置文件下载下来修改后上传,下载和上传操作见《Linux 文件上传下载命令rz/sz的安装和rz/sz命令的使用方法》,具体修改如下:

#LoadModule ssl_module modules/mod_ssl.so  #删除行首的配置语句注释符号“#”加载mod_ssl.so模块启用SSL服务,Apache默认是不启用该模块的。
#Include conf/extra/httpd-ssl.conf  #删除行首的配置语句注释符号“#”。                 

如果上述语句不存在的话直接添加,注意要去掉前面的“#”奥。


上传证书文件到服务上,在/etc/httpd目录新建cert文件夹,然后把证书上传到这个目录下,我对证书修改了名称,文件的路径和名称在配置httpd-ssl.conf时会用到,要记住。这是我修改后的名字

public.crt
key.key 
chain.crt 

上传操作

cd /etc/httpd
mkdir cert
cd cert
rz -y

弹出对话框选择文件上传即可

修改httpd-ssl.conf 文件,如果不知道文件位置可以先查找文件位置

find / -name httpd-ssl.conf

如果不存在,新建该文件即可,创建在/etc/httpd/conf/extra/httpd-ssl.conf,添加如下代码

<VirtualHost *:443>     
    ServerName  www.ideashu.cn                    
    DocumentRoot  "/var/www/"          
    SSLEngine on   
    SSLProtocol all -SSLv2 -SSLv3 
    SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM   
    SSLHonorCipherOrder on
    SSLCertificateFile cert/public.crt   
    SSLCertificateKeyFile cert/key.key   
    SSLCertificateChainFile cert/chain.crt 
</VirtualHost> 
<VirtualHost *:443>     
    ServerName  ideashu.cn                    
    DocumentRoot  "/var/www/"          
    SSLEngine on   
    SSLProtocol all -SSLv2 -SSLv3 
    SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM   
    SSLHonorCipherOrder on
    SSLCertificateFile cert/public.crt   
    SSLCertificateKeyFile cert/key.key   
    SSLCertificateChainFile cert/chain.crt 
</VirtualHost>

由于443是HTTPS服务的默认端口,检测并开启Apache服务器上的443端口,这个有的是服务器平台限制了,比如阿里云你要在他的控制台设置。

然后重启Apache服务器测试下,是否可以用https访问

systemctl restart  httpd

我的测试是成功的,由于之前使用的是http,可能已经被各大网站收录这时我们需要让http跳转到https,怎么设置呢,我是在我的伪静态文件中添加的

<IfModule mod_rewrite.c>
	RewriteEngine on
	RewriteCond %{SERVER_PORT} !^443$
	RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R]
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d
	RewriteBase /
	RewriteRule . /index.php [L]
</IfModule>

其中第3、4行是新添加的跳转,亲测有效。

如果需要301跳转,把不带www的域名跳转到带www的域名上可以在上边添加的3、4行后继续添加下边代码即可

RewriteCond %{HTTP_HOST} ^ideashu.cn [NC]
RewriteRule ^(.*)$ https://www.ideashu.cn/$1 [R=301,L]

301跳转,亲测有效。以上代码中凡事涉及到域名和路径的地方,请自觉修改成自己的域名和路径。

注意:由于.htaccess文件看着就比较特殊,linux无法用命令直接上传,也许你的可以,我是没有成功,解决方案:

1、使用vi/viw进行编辑,如何编辑我在搭建服务器的笔记中有提到,如果没有该文件就请移步方案2(当然你也可以新建文件)。

2、如果你不会编辑,或者网站没有这个文件别急我们可以采用压缩解压的方式上传,压缩解压操作请移步《linux 的压缩和解压缩命令zip和unzip


---

转载请注明本文标题和链接:《 linux系统 在Apache服务器上安装SSL证书
评论

还没有评论奥,快来抢个沙发吧!

(有 0 条评论)