Linux Apache 的 HTTPS 配置

合集下载

Linux系统配置HTTPSSL

Linux系统配置HTTPSSL

Linux系统配置HTTPSSL centos6配置⼀个基于SSL VPN的Apache服务,制作该服务的证书安装Apacheyum -y install httpd*安装mod_sslyum -y install mod_ssl开启HTTP服务service httpd start关闭防⽕墙service iptables stop进⼊/etc/pki/tls/certs/⽬录下cd /etc/pki/tls/certs/⽣成证书make server.crtumask 77 ; \/usr/bin/openssl genrsa -aes128 2048 > server.keyGenerating RSA private key, 2048 bit long modulus...................................+++.....+++e is 65537 (0x10001)Enter pass phrase:Verifying - Enter pass phrase: //输⼊通⾏短语umask 77 ; \/usr/bin/openssl req -utf8 -new -key server.key -x509 -days 365 -out ser ver.crt -set_serial 0 Enter pass phrase for server.key://输⼊server.key的密码短语You are about to be asked to enter information that will be incorporatedinto your certificate request.What you are about to enter is what is called a Distinguished Name or a DN.There are quite a few fields but you can leave some blankFor some fields there will be a default value,If you enter '.', the field will be left blank.-----Country Name (2 letter code) [XX]:cn //国家名称(2个字母代码)State or Province Name (full name) []:beijing //省份(全名)Locality Name (eg, city) [Default City]:tam //地点名称Organization Name (eg, company) [Default Company Ltd]:xm //组织名称Organizational Unit Name (eg, section) []:shit //组织单位名称Common Name (eg, your name or your server's hostname) []:localhost //公⽤名Email Address []:123@ //电⼦邮箱配置ssl.conf,第77⾏中将图中的两个注释去掉修改为本地IP即可vi /etc/httpd/conf.d/ssl.conf修改第113 ,路径要正确,第⼆个key由为关键SSLCertificateFile /etc/pki/tls/certs/server.crtSSLCertificateKeyFile /etc/pki/tls/certs/server.key改完后保存并退出重启httpd服务,输⼊制作证书时的密码service httpd restart如果报错SSLCertificateKeyFile: file '/etc/pki/tls/certs/server.key' does not exist or is empty 报错的原因可能是因为key不存在或者为空,不⽤担⼼,删掉key和crt 可以重新⽣成cd /etc/pki/tls/certs/server.crtrm server.keyrm server.crtmake server.crt //重新验证Openssl 验证⼀切准备好后,可以看这⼀步,每次重启使HTTP服务器⽆需密码openssl rsa -in server.key -out server.key⽆需输⼊密码直接重启。

Apache配置HTTPS协议

Apache配置HTTPS协议

Apache配置HTTPS协议搭载SSl配置全过程1.安装必要的软件从Apache官方()下载必要的ApacheHttpServer安装包,可以直接官方提供的绑定openssl的apache.文件名是:httpd-2.2.15-win32-x86-openssl-0.9.8m-r2.msi(我用的是Apache2.2.15for windows的版本,你可以点击此处下载最新的版本进行安装,最好选择含有openssl版本的哦)否则单独安装windows下的openssl比较麻烦,要么找到一个第三方的编译结果,要么自己编译安装完毕后检查检查在Apache安装路径的bin下是否有以下文件:openssl.exessleay32.dlllibeay32.dll2. 生成服务器证书安装好在bin目录下有一个openssl.exe文件,用来生成证书和密钥。

1). 生成服务器用的私钥文件server.key(注:在Windows操作系统环境下需先设置Openssl环境变量:在DOS命令下进入conf目录,执行命令行:set OPENSSL_CONF=..\conf\f;请在执行之前确保f存在,否则会出现:WARNING: can't open config file: /usr/local/ssl/f 信息提示。

还有在windows系统下.cnf 默认会被当成快捷方式,看不到扩展名。

)在DOS命令下进入bin目录,执行命令行命令:openssl genrsa 1024> server.key说明:这是用128位rsa算法生成密钥,得到server.key文件>是输出文件的标识符这种生成方法生成的是没有密钥的私钥文件,当然,Apache提供了加入密钥(Password)的命令,就是加入参数-des3,全部的命令为:命令:openssl genrsa 1024-des3 > server.key使用 openssl genrsa -des3 > 1024 server.key生成私钥文件是需要输入密钥的,运行的时候会让你输入并确认你的密钥,但是在Windows环境下会导致以下错误:错误:Apache启动失败,错误提示是:Init: SSLPassPhraseDialog builtin is not supported on Win32 (key file .....)原因是window下的apache不支持加密的私钥文件。

如何在Linux上安装和配置Apache服务器

如何在Linux上安装和配置Apache服务器

如何在Linux上安装和配置Apache服务器Apache是一个流行的开源Web服务器软件,被广泛用于搭建和管理网站。

在Linux系统上安装和配置Apache服务器是一项基本的技能。

本文将介绍如何在Linux操作系统下安装和配置Apache服务器。

一、安装Apache服务器首先,打开终端窗口,并使用以下命令来更新软件包列表:sudo apt update接下来,使用以下命令来安装Apache服务器:sudo apt install apache2安装过程中,您需要输入管理员密码进行确认。

安装完成后,Apache服务器将自动启动。

二、配置Apache服务器1. 配置文件路径Apache的配置文件位于/etc/apache2目录下。

在终端中使用cd命令进入该目录:cd /etc/apache22. 主配置文件编辑主配置文件apache2.conf,使用以下命令打开该文件:sudo nano apache2.conf在打开的文件中,可以找到一些常用的配置选项,您可以根据需要进行修改。

例如,您可以更改服务器名称、监听端口等。

3. 虚拟主机配置虚拟主机配置允许您在同一台服务器上运行多个网站。

默认情况下,Apache服务器已经为您配置了一个默认的虚拟主机。

如果您想添加更多的虚拟主机,您可以在/etc/apache2/sites-available目录下创建配置文件。

使用以下命令进入该目录:cd /etc/apache2/sites-available使用以下命令创建一个新的虚拟主机配置文件,例如mywebsite.conf:sudo nano mywebsite.conf在此配置文件中,您可以设置您的网站的域名、目录路径和其他相关设置。

保存并关闭文件。

接下来,使用以下命令启用新的虚拟主机配置文件:sudo a2ensite mywebsite.conf最后,重新加载Apache服务器以应用配置更改:sudo service apache2 reload您的新虚拟主机现在应该已经生效了。

linuxapacheTomcat配置SSL(https)步骤

linuxapacheTomcat配置SSL(https)步骤

linuxapacheTomcat配置SSL(https)步骤1. https简介它是由Netscape开发并内置于其浏览器中,⽤于对数据进⾏压缩和解压操作,并返回⽹络上传送回的结果。

HTTPS实际上应⽤了Netscape的安全套接字层(SSL)作为HTTP应⽤层的⼦层。

(HTTPS使⽤端⼝443,⽽不是象HTTP那样使⽤端⼝80来和TCP/IP进⾏通信。

)SSL使⽤40 位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。

HTTPS和SSL⽀持使⽤X.509数字认证,如果需要的话⽤户可以确认发送者是谁。

也就是说它的主要作⽤可以分为两种:⼀种是建⽴⼀个信息安全通道,来保证数据传输的安全;另⼀种就是确认⽹站的真实性。

2. HTTPS和HTTP的区别 ⼀、https协议需要到ca申请证书,⼀般免费证书很少,需要交费。

⼆、http是超⽂本传输协议,信息是明⽂传输,https 则是具有安全性的ssl加密传输协议。

三、http和https使⽤的是完全不同的连接⽅式,⽤的端⼝也不⼀样,前者是80,后者是443。

四、http的连接很简单,是⽆状态的;HTTPS协议是由SSL+HTTP协议构建的可进⾏加密传输、⾝份认证的⽹络协议,⽐http协议安全。

3. SSL介绍为Netscape所研发,⽤以保障在Internet上数据传输之安全,利⽤数据加密(Encryption)技术,可确保数据在⽹络上之传输过程中不会被截取及窃听。

⽬前⼀般通⽤之规格为40 bit之安全标准,美国则已推出128 bit之更⾼安全标准,但限制出境。

只要3.0版本以上之I.E.或Netscape浏览器即可⽀持SSL。

当前版本为3.0。

它已被⼴泛地⽤于Web浏览器与服务器之间的⾝份认证和加密数据传输。

SSL协议位于TCP/IP协议与各种应⽤层协议之间,为数据通讯提供安全⽀持。

SSL协议可分为两层:SSL记录协议(SSL Record Protocol):它建⽴在可靠的传输协议(如TCP)之上,为⾼层协议提供数据封装、压缩、加密等基本功能的⽀持。

Linux下Apache服务的部署和配置

Linux下Apache服务的部署和配置

Linux下Apache服务的部署和配置⽬录1 Apache的作⽤2 Apache的安装3 apache的启⽤4 apache的基本信息5 apache的访问控制5.1 基于客户端ip的访问控制5.2 基于⽤户认证的访问控制6 apache的虚拟主机7 apache的加密访问8 ⽹页重写9 正向代理10 反向代理11 apache ⽀持的语⾔1 Apache的作⽤解析⽹页语⾔,如html,php,jsp等接收web⽤户的请求,并给予⼀定的响应2 Apache的安装安装apche软件:dnf install httpd.x86_64 -y3 apache的启⽤开启apache服务并设置开机启动:systemctl enable --now httpd查看apache服务的状态:systemctl enable --now httpd查看⽕墙信息:firewall-cmd --list-all 在⽕墙中永久开启http服务:firewall-cmd --permanent --add-service=http在⽕墙中永久开启https服务: f irewall-cmd --permanent --add-service=https在不改变当前⽕墙状态的情况下刷新防⽕墙:firewall-cmd --reload4 apache的基本信息apche的基本信息服务名称:httpd主配置⽂件:/etc/httpd/conf/httpd.conf⼦配置⽂件:/etc/httpd/conf.d/*.conf默认发布⽬录:/var/www/html默认端⼝:80 (http),443(https)⽇志⽂件:/etc/httpd/logs开启apche服务后,输⼊ip查看默认发布页⾯:(1)更改apche服务的端⼝号查看httpd服务的默认端⼝号:netstat -antlupe |grep httpd编辑配置⽂件:/etc/httpd/conf/httpd.conf,修改端⼝号重启httpd服务:systemctl restart httpd查看httpd服务的端⼝号:netsat -antlupe | grep httpd更改端⼝号后,输⼊ip后⽆法正常连接,原因是8080端⼝未添加在⽕墙中在防⽕墙⾥添加888端⼝号:firewall-cmd --permanent --add-port=888/tcp在不改变当前⽕墙状态的情况下刷新防⽕墙:firewall-cmd --reload输⼊IP地址:端⼝号,可以正常访问(2)修改apche的默认发布⽂件默认⽬录:cd /var/www/html在⽂件默认发布⽬录下新建⼀个⽂件index.html输⼊:http://172.25.254.144查看默认发布⽂件就是访问apache时没有指定⽂件名,即默认访问的⽂件,此⽂件可以指定多个,但有访问顺序。

Linux下Apache的安装与配置

Linux下Apache的安装与配置

Linux下Apache的安装与配置⼀、编译安装1、解决依赖关系⼆、后续操作1、启动httpd两种⽅法:第⼀种、/usr/local/apache/bin/apachectl start第⼆种⽅法:先修改http.pid⽂件位置打开配置⽂件增加⼀⾏vim /etc/httpd/httpd.conf 增加PidFile “/var/run/httpd.pid”为了启动httpd更加⽅便,#!/bin/bash## httpd Startup script for the Apache HTTP Server## chkconfig: - 85 15# description: Apache is a World Wide Web server. It is used to serve \# HTML files and CGI.# processname: httpd# config: /etc/httpd/conf/httpd.conf# config: /etc/sysconfig/httpd# pidfile: /var/run/httpd.pid# Source function library.. /etc/rc.d/init.d/functionsif [ -f /etc/sysconfig/httpd ]; then. /etc/sysconfig/httpdfi# Start httpd in the C locale by default.HTTPD_LANG=${HTTPD_LANG-"C"}# This will prevent initlog from swallowing up a pass-phrase prompt if# mod_ssl needs a pass-phrase from the user.INITLOG_ARGS=""# Set HTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server# with the thread-based "worker" MPM; BE WARNED that some modules may not# work correctly with a thread-based MPM; notably PHP will refuse to start.# Path to the apachectl script, server binary, and short-form for messages.apachectl=/usr/local/apache/bin/apachectlhttpd=${HTTPD-/usr/local/apache/bin/httpd}prog=httpdpidfile=${PIDFILE-/var/run/httpd.pid}lockfile=${LOCKFILE-/var/lock/subsys/httpd}RETVAL=0start() {echo -n $"Starting $prog: "LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONSRETVAL=$?echo[ $RETVAL = 0 ] && touch ${lockfile}return $RETVAL}stop() {echo -n $"Stopping $prog: "killproc -p ${pidfile} -d 10 $httpdRETVAL=$?echo[ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}}reload() {echo -n $"Reloading $prog: "if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null; thenRETVAL=$?echo $"not reloading due to configuration syntax error"failure $"not reloading $httpd due to configuration syntax error"elsekillproc -p ${pidfile} $httpd -HUPRETVAL=$?fiecho}# See how we were called.case "$1" instart)start;;stop)stop;;status)status -p ${pidfile} $httpdRETVAL=$?;;restart)stopstart;;condrestart)if [ -f ${pidfile} ] ; thenstopstartfi;;reload)reload;;graceful|help|configtest|fullstatus)$apachectl $@RETVAL=$?;;*)echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}" exit 1esacexit $RETVAL将以上代码加⼊到vim /etc/init.d/httpd中⽽后为此脚本赋予执⾏权限:chmod +x /etc/rc.d/init.d/httpd加⼊服务列表:chkconfig --add httpd给3,5启动chkconfig --level 3,5 httpd on最后加路径将 export PATH=$PATH:/usr/local/apache/binvim /etc/profile.d/httpd.sh完成后重新登录就可以了。

阿里云服务器apache配置SSL证书成功开启Https(记录趟过的各种坑)

阿里云服务器apache配置SSL证书成功开启Https(记录趟过的各种坑)

阿⾥云服务器apache配置SSL证书成功开启Https(记录趟过的各种坑)环境:步骤:申请证书(某度很多教程的,⼤家⾃⾏搜索)上传证书登陆阿⾥云控制台=》安全(云盾)=》CA证书服务=》上传原有证书(也可以直接买阿⾥云的证书,这样就不⽤上传,不过个⼈⽹站⼀般是申请免费的证书)开启服务器443端⼝(https默认端⼝)阿⾥云控制台=》云计算基础服务=》云服务器ECS=》⽹络和安全=》安全组,没有安全组的创建⼀个安全组,有的直接选择相应安全组,点击配置规则=》添加安全组规则(把80端⼝和443端⼝添加进安全组,授权对象填0.0.0.0/0)开启apache相应配置#修改httpd.conf⽂件LoadModule ssl_module modules/mod_ssl.soInclude conf/extra/httpd-ssl.confLoadModule rewrite_module#去掉上⾯三⾏前的"#"保存退出在apache⽬录下的conf⽬录下新建⼀个cert⽬录,将你的证书⽂件放在这⾥⾯开启php的openssl模块,在phpstudy的“php扩展及设置”⾥⾯开启即可修改httpd-ssl.conf⽂件,保存退出在..\Apache\conf\extra⽬录下,打开httpd-ssl.conf⽂件(注:先备份⼀遍,以免出错,因为这个⽂件的错误我重装phpstuy不下10回)在⽂件⾥定位到 Listen 443 这句话这⾥,把从这句话到这个⽂件结尾的⽂本全部注释掉或者删除掉,替换成以下代码Listen 443 //这⾥强调⼀下,如果Listen 443这句代码在这个⽂件⾥重复出现了,即重复监听,apache会报错,然后不能启动SSLStrictSNIVHostCheck offSSLCipherSuite AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULLSSLProtocol all -SSLv2 -SSLv3<VirtualHost *:443>#这⾥的路径设置你的⽹站根⽬录DocumentRoot "C:\phpStudy\PHPTutorial\WWW"#这⾥替换成你的域名ServerName #这⾥替换成你的域名ServerAlias #这⾥的路径设置你的⽹站根⽬录<Directory "C:\phpStudy\PHPTutorial\WWW">Options FollowSymLinks ExecCGIAllowOverride AllOrder allow,denyAllow from allRequire all granted</Directory>SSLEngine on#你的公钥⽂件SSLCertificateFile "C:/phpStudy/PHPTutorial/Apache/conf/cert/server.crt"#你的私钥⽂件(有的机构命名为private或者以你的域名为⽂件名命名)SSLCertificateKeyFile "C:/phpStudy/PHPTutorial/Apache/conf/cert/server.key"#证书链⽂件(有的机构命名为CA)我尝试过注释掉这个选项,结果apache不能运⾏SSLCertificateChainFile "C:/phpStudy/PHPTutorial/Apache/conf/cert/chain.crt"</VirtualHost>重启apache,看看能不能正常启动,如果有异常,尝试把第4步中httpd-ssl.conf代码恢复注释(把#重新加上去,保存退出),再次重启apache,如果此时能够正常启动,则说明httpd-ssl.conf⽂件中有错误(是不是重复监听了?证书路径对不对?证书是否有效?),请认真检查,直到能够正常启动apache打开hosts⽂件我的hosts⽂件在C:\Windows\System32\drivers\etc⽬录下⽤记事本打开,在127.0.0.1 localhost下⾯添加⼀句话:127.0.0.1 //这⾥替换成你的域名保存退出保存退出重启apache启动浏览器检查是否可以访问localhost 及你的域名,并且域名头部标志为https。

linux下ssl环境配置

linux下ssl环境配置

linux下ssl环境配置1. 配置apache时把ssl模块载入进来./configure \--with-ldap \--prefix=/usr/local/apache_smart_static \--enable-include \--enable-rewrite \--enable-ssl \--with-ssl=/usr/local/OpenSSL/ \--enable-proxy \--enable-ldap \--enable-auth-ldap=======================================检查模块有没装进去,可以用命令:bin/apache -l=======================================2. 安装数字证书使用https方式验证vi /usr/local/apache/conf/http.conf# Secure (SSL/TLS) connectionsInclude conf/extra/httpd-ssl.conf //把此处的#去掉 (Include conf/ssl.conf 版本问题,有些版本是没有httpd-ssl.conf这个属性,只有ssl.conf,效果是一样的)## Note: The following must must be present to support# starting without SSL on platforms with no /dev/random equivalent# but a statically compiled-in mod_ssl.## cd /usr/local/apache2# ./bin/apachectl startSyntax error on line 108 of /usr/local/apache2/conf/ssl.conf:SSLCertificateFile: file '/usr/local/apache2/conf/server.key' does not exist or is empty 这又是什么原因呢?因为我们没有配置ssl,需要生成ssl需要的证书。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Linux Apache 的 HTTPS 配置我以前在 Windows 上配置过Apache的 SSL/HTTPS 双向认证,即对 Web 服务器与浏览器同时进行认证,而建立的 HTTPS 安全连接。

最近,我在 Linux 下也配置了下Apache的 HTTPS,并将配置过程和遇到的问题记录了一下。

配置环境∙Web 服务器系统:VMware Workstation 6.0.2,Debian Linux 5.0.2,kernel=2.6.26-2-686∙Web 服务器:Apache 2.2.9-10∙Web 浏览器系统:Windows XP Professional∙Web 浏览器:Firefox 3.0.11Linux Apache的基本配置现在 Linux 下较新的Apache配置,要比 Windows 下的配置方便、灵活的多。

比如,我的 Debian 5 下的Apache2 包安装后,就将Apache的配置文件放在:/etc/apache2目录下,并按照 Linux 下经典的:xxx-available,xxx-enabled,xxx.d目录来组织配置文件,看到这里有没有想到 Emacs 的配置文件组织方式呢?(*^_^*)。

玩 Linux 的人看到这里,大多都能猜地出 Linux Apache是怎么组织的。

下面简单列举一下Apache配置文件的组织结构:∙apache2.conf:Apache的入口配置文件,包含其它配置文件的主控文件∙conf.d/:包含一些零碎的配置,一般不和具体的 mod 相关,是全局性质的,比如:字符集 charset、安全选项 security。

∙ports.conf:设置Apache的监听端口,默认时,HTTP 为 80,HTTPS 为443。

∙envvars:导出一些环境变量,比如:∙export APACHE_RUN_USER=www-data∙export APACHE_RUN_GROUP=www-data∙export APACHE_PID_FILE=/var/run/apache2.pid∙httpd.conf:额外的用户设置的配置,默认里面内容为空。

Windows 下的Apache喜欢用这个名字作为主控配置文件,但在 Linux 下,作用不大。

∙mods-available/:包含Apache中所有可用 mod 的加载和设置配置,加载配置一般用 xxx.load 表示,设置配置一般用 xxx.conf 表示,比如:mod_ssl 的加载配置为:ssl.load,设置配置为:ssl.conf ∙mods-enabled/:实际启动的 mod 的加载和设置配置,是到mods-available/ 中配置文件的符号链接。

∙sites-available/:Web 站点的配置,可以是全局的,或虚拟主机作用域的。

默认有两个附带的配置文件:default、default-ssl,其中 default 为一般的 HTTP 服务的虚拟主机配置,而 default-ssl 就是 HTTPS 服务的虚拟主机配置。

这两个配置文件可以直接使用,配置内容只需做适当的调整即可。

∙sites-enabled/:实际启动的 Web 站点配置,是到 sites-available/ 中配置文件的符号链接。

默认时,只有一个000-default链接指向sites-available/default,说明默认的Apache配置,只启动 HTTP 服务,而不启动 HTTPS 服务。

另外,列举一下配置 HTTPS 时,Apache的相关文件路径:∙Apache日志文件:在:/var/log/apache2目录中保存。

错误日志为:error.log,HTTP 访问日志为:access.log,HTTPS 访问日志为:ssl_access.log。

∙Apache的启动:可以使用Apache在:/etc/init.d/中安装的 Run Level 脚本:apache2,来启动/停止Apache服务。

和大多数 Run Level 脚本一样,使用参数start启动服务,使用参数stop停止服务,如下:∙# /etc/init.d/apache2 start∙Starting web server: apache2apache2: Could not reliably determine the server's fully qualified domain name, using 192.168.2.108 for ServerName∙∙# /etc/init.d/apache2 stop∙Stopping web server: apache2apache2: Could not reliably determine the server's fully qualified domain name, using 192.168.2.108 for ServerName∙ ... waiting .∙Web 文件目录:使用 sites-available 中,配置文件 default 和default-ssl 的DocumentRoot选项,默认指定的 Web 文件目录:/var/www/。

/var/www 目录下默认只有一个 Web 文件:index.html,我就用它作为HTTPS 配置的测试页面,并更改了下它的内容:<html><body><h1>Hello World! --zy</h1></body></html>证书、密钥和测试场景有 2 台主机系统:∙一个 Linux 安装Apache服务器,主机名:zy-13∙另一个为 Windows,使用 Firefox 作为浏览器,主机名:zy-1。

使用Firefox 作为浏览器,是因为 HTTPS 基于的 SSL 最早是由 Netscape 提出的,并且 Netscape 一直在发展 SSL 技术(参考:Mozilla SSL/TLS),而 Mozilla 是 Netscape 的开源社区,所以我想 Mozilla 的 Firefox应该比其它浏览器对 SSL 支持地更完善(其实这是借口,我只是喜欢用Firefox 而已)。

有3套证书,用openssl工具生成,作用如下:∙zy-root.cer:用作CA证书,PEM格式,对其它两个证书进行签发,它自己是自签的。

∙zy-13.cer:用作Web服务器证书,PEM格式。

它的密钥文件为:zy-13.key,用DES3加密保护。

注意:服务器证书zy-13.cer中的通用名属性,即CN:Common Name字段,应该和服务器的主机名一致,我都设定为:zy-13,否则,浏览器会报错:ssl_error_bad_cert_domain,如下:这个要求的作用是显然的,目的是防止其它人冒用服务器证书,比如:当服务器证书zy-13.cer,和服务器密钥zy-13.key,同时落入攻击者手中,并且zy-13.key不使用密码保护时,这种冒充攻击就可能奏效。

在实际工作中,CN名应该设定为服务器主机的全域名(FQDN:Fully Qualified Domain Name)。

我在测试中,用IP地址访问HTTPS服务时,浏览器也会出现该错误,这可能是因为主机名和IP地址的映射不是由DNS系统完成的,而是由Windows LAN完成的。

另外,对于这种“无效的安全证书”错误,Firefox有一种“迁就的”用户放过的方法:通过服务器证书的散列码(指纹)和其它属性信息,人工验证证书的有效性,如果最后你确定信任这个证书,可以在Firefox中加入一条“安全例外”。

“安全例外”型证书是Firefox对待证书认证的一种灵活方式,但使用这种方式后安全性交由Firefox用户自己负责,而依靠授权证书链的认证策略也荡然无存了,这也不是HTTPS认证的正常使用方式。

安全例外可以在Firefox的报错页面上点击“或者,您可以添加一个例外”来增加,例外的证书被放置在“证书管理器”中的“服务器”类别中,在那里也可以点击“添加例外”增加例外证书。

zy-1.cer:用作浏览器中使用的Web客户端证书,PEM格式。

它的密钥文件为:zy-1.key,用DES3加密保护。

将zy-1.cer与zy-1.key合成为PKCS#12格式的文件:zy-1.p12,并设定导出密码(Export Password)保护zy-1.p12文件。

注意:这个导出密码就是在浏览器中导入PKCS#12文件时,提示输入的密码,而原来的密钥文件zy-1.key的DES3保护密码是没有用的。

HTTPS服务器端认证配置Apache中对服务器端的HTTPS认证配置、使用过程如下:1.启用Apache默认附带的HTTPS服务配置文件:sites-available/default-ssl,只需在目录:sites-enabled中建立一个指向它的符号链接即可:2.#cd sites-enabled3.#ln -s -T ../sites-available/default-ssl 001-default-ssl4.在:sites-available/default-ssl中设置HTTPS服务器端认证的选项。

首先,启动SSL传输层引擎SSLEngine,如下:5.# SSL Engine Switch:6.# Enable/Disable SSL for this virtual host.7.SSLEngine on8.使用SSLCertificateFile和SSLCertificateKeyFile选项,设置服务器证书zy-13.cer和服务器密钥zy-13.key。

9.# A self-signed (snakeoil) certificate can be created byinstalling10.# the ssl-cert package. See11.# /usr/share/doc/apache2.2-common/README.Debian.gz for moreinfo.12.# If both key and certificate are stored in the same file, onlythe13.# SSLCertificateFile directive is needed.14.SSLCertificateFile /root/common/key/zy-13.cer15.SSLCertificateKeyFile /root/common/key/zy-13.key设置完后,服务器端认证大致就配置完成了,不要忘记重启Apache服务器。

相关文档
最新文档