用户在官方  Apache  中启用国密算法,确实需要重新编译。目前最成熟的方案是与沃通(Wosign)的国密模块  `wotrus_ssl`  一起编译。下面写一下在一个在  Linux  环境下的标准操作流程。

一、操作流程

请注意:以下操作以  CentOS  7  和  Apache  2.4.x  为例,其他  Linux  发行版命令可能稍有不同,请根据实际情况调整。

1.    第一步:准备工作

              一台  Linux  服务器:拥有  `root`  权限。

              国密  SSL证书:从  CA  机构获取,证书文件(`.crt`  或  `.pem`)和私钥文件(`.key`)。

              确认端口:确保服务器上的  `443`  端口已开放,否则安装后  HTTPS  也无法访问。

2.    第二步:安装编译工具与依赖库

        通过  `yum`  安装编译所需的核心工具和依赖库。

        bash

        #  安装  gcc、gcc-c++  等基础编译工具

        yum  install  -y  gcc  gcc-c++

        #  安装  Apache  Portable  Runtime  (APR)  及开发库

        yum  install  -y  apr  apr-util  expat-devel  pcre-devel

3.    第三步:下载并编译安装  `wotrus_ssl`  国密模块

        这是支持国密算法的关键步骤,需要下载、编译并集成沃通国密模块  `wotrus_ssl`。

        bash

        #  1.  下载  wotrus_ssl  模块  (建议到官方  https://www.wotrus.com  获取最新链接)

        cd  /usr/local/

        wget  https://www.wotrus.com/download/wotrus_ssl.tar.gz

        #  2.  解压模块  (请勿修改解压后的文件夹名,以免编译错误)

        tar  -zxvf  wotrus_ssl.tar.gz

        #  注意:解压后进入目录查看,里面应该包含编译所需的脚本和文件

        cd  wotrus_ssl

        #  3.  根据脚本进行编译

        #  请参考官方文档执行编译命令,通常是一个  ./configure  和  make

4.    第四步:下载并编译安装支持国密的  Apache

        在编译  Apache  时,需要显式地指定使用刚才编译好的  `wotrus_ssl`  模块。

        bash

        #  1.  下载  Apache  源码  (建议使用  2.4.46  或  2.4.62  等稳定版本)

        cd  /usr/local/

        wget  https://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.62.tar.gz

        tar  -zxvf  httpd-2.4.62.tar.gz

        cd  httpd-2.4.62

        #  2.  配置编译参数,关键是指定  --with-ssl  为国密模块的路径

        ./configure  \

                prefix=/usr/local/httpd  \

                enable-so  \

                enable-ssl  \

                with-ssl=/usr/local/wotrus_ssl  \    #  这里指向  wotrus_ssl  的目录

                enable-mods-shared=all

        #  3.  编译并安装

        make  &&  make  install

5.    第五步:配置  Apache  证书

              将你的国密证书文件(`.crt`)和私钥文件(`.key`)上传到服务器,例如放到  `/usr/local/httpd/conf/ssl.crt/`  和  `/usr/local/httpd/conf/ssl.key/`  目录下。

              编辑  Apache  的  SSL  配置文件(通常是  `/usr/local/httpd/conf/extra/httpd-ssl.conf`  或  `/usr/local/httpd/conf/httpd.conf`),添加或修改  `<VirtualHost  *:443>`  部分,以引用你的证书和私钥文件。

6.    第六步:验证与测试

              检查配置:运行  `/usr/local/httpd/bin/apachectl  configtest`,输出应为  `Syntax  OK`。

              重启  Apache:运行  `/usr/local/httpd/bin/apachectl  restart`。

              使用国密浏览器测试:用支持国密算法的浏览器(如  360  安全浏览器、密信浏览器等)访问你的网站,查看地址栏是否出现安全锁标志。

二、备选方案与核心思路

除了上述编译流程,还有一些思路可以帮助你简化部署:

直接使用预编译包:一些厂商(如  GMSSL.cn)提供了已经编译好的、支持国密算法的  Apache  版本。如果环境匹配,你可以下载解压后直接配置证书,跳过编译步骤。

核心思路:替换底层密码库:无论是哪种方案,其核心原理都是将  Apache  依赖的标准  OpenSSL  替换成支持国密算法的版本(如  GMSSL  或  `wotrus_ssl`),从而使上层应用获得国密能力。

如果编译或配置中遇到具体问题,可以提供更多细节,我们会尽力协助排查。