National secret nginx Container actual Fighting

Gmssl 2021-09-15 06:46:28
national secret nginx container actual


Secret nationalNginxConteneur en action

1.Contexte

​ Secret national actuelSSL(TLCP)La promotion et l'utilisation pratique de,Secret nationalSSLLe labo(www.gmssl.cn)Disponible en version nationaleOpenSSL,Et peut être lié àNginxIntégration,Il est plus pratique de construire des secrets d'ÉtatSSLAgent inverse ou secret d'ÉtatSSLServeur.

​ Secret nationalSSLLe laboratoire n'a pas fourniDockerExemple de,Considérant queDockerL'étendue de,Cet article décrit commentDockerLe secret national est déployé à l'intérieurSSLDeNginxLe processus de construction complet de,À des fins d'étude et de référence seulement.

L'environnement de fonctionnement estCentos7 X86_64.

2.Installationdocker

#Installationdocker 17.03.0
#InstallationdockerCompter sur troisyumSource:Base,Extras,docker-ce
[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@localhost ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@localhost ~]# wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#RégénéreryumCache
[root@localhost ~]# yum clean all
[root@localhost ~]# yum makecache
#Installationdocker Paquets dépendants requis
[root@localhost ~]# yum -y install https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-selinux-17.03.0.ce-1.el7.centos.noarch.rpm
#Installationdocker
[root@localhost ~]# yum -y install docker-ce-17.03.0.ce-1.el7.centos

3.Configurer l'accélération du miroir

[root@localhost ~]# mkdir /etc/docker
[root@localhost ~]# cat > /etc/docker/daemon.json<<EOF
> {
> "registry-mirrors": ["https://si7y70hh.mirror.aliyuncs.com"]
> }
> EOF
[root@localhost ~]# systemctl enable --now docker

4. Préparation de l'environnement du conteneur

#Tirez!centosMiroir
[root@localhost ~]# docker pull centos:centos7.9.2009
#Faire fonctionner le conteneur
[root@localhost ~]# docker run -itd --name nginx centos:centos7.9.2009
[root@localhost ~]# docker exec -it nginx /bin/bash
[root@308fdeaaa058 /]# yum -y install wget gcc make pcre-devel
[root@308fdeaaa058 ~]# wget http://nginx.org/download/nginx-1.20.1.tar.gz
[root@308fdeaaa058 ~]# tar xf nginx-1.20.1.tar.gz

5.Compilernginx

Téléchargergmssl_openssl_1.1_b4.tar.gzAvecnginx( Voir ressources et téléchargements ),Puis compilez.

[root@308fdeaaa058 ~]# exit
[root@localhost ~]# ls
anaconda-ks.cfg gmssl_openssl_1.1_b4.tar.gz
#Téléchargergmssl Le paquet est copié dans le conteneur
[root@localhost ~]# docker cp gmssl_openssl_1.1_b4.tar.gz nginx:/root/
[root@localhost ~]# docker exec -it nginx /bin/bash
[root@308fdeaaa058 /]# cd
[root@308fdeaaa058 ~]# tar xf gmssl_openssl_1.1_b4.tar.gz -C /usr/local/
[root@308fdeaaa058 ~]# cd nginx-1.20.1
[root@308fdeaaa058 nginx-1.20.1]# vi auto/lib/openssl/conf
# Tout sera $OPENSSL/.openssl/Modifier comme suit:$OPENSSL/Et sauvegardez
#Configuration de compilation
[root@308fdeaaa058 nginx-1.20.1]# ./configure \
> --without-http_gzip_module \
> --with-http_ssl_module \
> --with-http_stub_status_module \
> --with-http_v2_module \
> --with-file-aio \
> --with-openssl="/usr/local/gmssl" \
> --with-cc-opt="-I/usr/local/gmssl/include" \
> --with-ld-opt="-lm"
[root@308fdeaaa058 nginx-1.20.1]# make install
[root@308fdeaaa058 nginx-1.20.1]# ln -s /usr/local/nginx/sbin/nginx /usr/sbin/
# Créer un répertoire de certificats et de sous - profils
[root@308fdeaaa058 nginx-1.20.1]# cd /usr/local/nginx/conf/
[root@308fdeaaa058 conf]# vi nginx.conf
include /usr/local/nginx/conf/conf.d/*.conf; # Ajouter cet article à http- Oui.
[root@308fdeaaa058 conf]# mkdir ssl
[root@308fdeaaa058 conf]# mkdir conf.d
[root@308fdeaaa058 conf]# exit

6.Faire un miroir

# Conteneur compilé , Emballé dans un miroir
[root@localhost ~]# docker commit nginx nginx
sha256:742fe82c7114f8272883f3f6a528fc62498cd5044b5ef942acd0bb4014a03467
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 742fe82c7114 8 seconds ago 489 MB
centos centos7.9.2009 8652b9f0cb4c 9 months ago 204 MB
#CompilationDockerfile
[root@localhost ~]# vim Dockerfile
[root@localhost ~]# cat Dockerfile
FROM nginx
LABEL version="1.0"
EXPOSE 80 443
CMD ["nginx", "-g", "daemon off;"]
#Faire un miroir
[root@localhost ~]# docker build -t "gmssl_nginx" .
Sending build context to Docker daemon 6.277 MB
Step 1/4 : FROM nginx
---> 742fe82c7114
Step 2/4 : LABEL version "1.0"
---> Running in efef92a82f76
---> b4305df3867a
Removing intermediate container efef92a82f76
Step 3/4 : EXPOSE 80 443
---> Running in c7addc9e5623
---> 63050d82a45a
Removing intermediate container c7addc9e5623
Step 4/4 : CMD nginx -g daemon off;
---> Running in ed1b4c9789c8
---> 8dfbfa5182f9
Removing intermediate container ed1b4c9789c8
Successfully built 8dfbfa5182f9
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
gmssl_nginx latest 8dfbfa5182f9 About a minute ago 489 MB
nginx latest 742fe82c7114 4 minutes ago 489 MB
centos centos7.9.2009 8652b9f0cb4c 9 months ago 204 MB

7.Conteneur de démarrage

Générer un double certificat secret national ( Voir ressources et téléchargements )Et configurernginx.

#Configurer le Répertoire
[root@localhost ~]# cd conf.d/
[root@localhost conf.d]# cat ssl.conf
server
{
listen 0.0.0.0:443 ssl;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:AES128-SHA:DES-CBC3-SHA:ECC-SM4-CBC-SM3:ECDHE-SM4-GCM-SM3;
ssl_verify_client off;
ssl_certificate /usr/local/nginx/conf/ssl/sm2.test.c.sig.crt.pem;
ssl_certificate_key /usr/local/nginx/conf/ssl/sm2.test.c.sig.key.pem;
ssl_certificate_key /usr/local/nginx/conf/ssl/sm2.test.c.enc.key.pem;
ssl_certificate /usr/local/nginx/conf/ssl/sm2.test.c.enc.crt.pem;
location /
{
root html;
index index.html index.htm;
}
}
[root@localhost conf.d]# cd
#Répertoire des certificats
[root@localhost ~]# cd sm2.test.c/
[root@localhost sm2.test.c]# ls
password.txt sm2.rca.pem sm2.test.c.enc.cer sm2.test.c.enc.key sm2.test.c.enc.key.crypted.bin sm2.test.c.enc.key.pem sm2.test.c.sig.cer sm2.test.c.sig.key sm2.test.c.sig.key.pem
sm2.oca.pem sm2.test.c.both.pfx sm2.test.c.enc.crt.pem sm2.test.c.enc.key.crypted.b64 sm2.test.c.enc.key.p8 sm2.test.c.enc.pfx sm2.test.c.sig.crt.pem sm2.test.c.sig.key.p8 sm2.test.c.sig.pfx
[root@localhost sm2.test.c]# cd
#Conteneur de démarrage
[root@localhost ~]# docker run -itd -p 443:443 -v /root/sm2.test.c/:/usr/local/nginx/conf/ssl/ -v /root/conf.d/:/usr/local/nginx/conf/conf.d --name gmssl_nginx gmssl_nginx
[root@localhost ~]# docker logs -f gmssl_nginx
OpenSSL(GM version) by www.gmssl.cn. Test Only!!!
OpenSSL(GM version) by www.gmssl.cn. Test Only!!!
OpenSSL(GM version) by www.gmssl.cn. Test Only!!!
OpenSSL(GM version) by www.gmssl.cn. Test Only!!!

8. Accédez à

Télécharger le navigateur secret de Chian Shin ( Voir ressources et téléchargements ) .

Importer le certificat national Michigan :Ouvrir le Navigateur>Paramètres>Paramètres avancés>Gestion des certificats> Importer un certificat . Importer une chaîne de certificats

Modifier la résolution locale :C:\Windows\System32\drivers\etc\hosts .hosts Ajouter une adresse de résolution au fichier

Ouvrir l'accès au navigateur

9.CompletDockerfile

Conteneur téléchargé dockerhub( Voir ressources et téléchargements ) .

[root@localhost nginx]# ls
Dockerfile gmssl_openssl_1.1_b4.tar.gz nginx-1.20.1.tar.gz
[root@localhost nginx]# cat Dockerfile
FROM centos:centos7.9.2009 #Basé surcentos7.9.2009Miroir
RUN yum install -y gcc make pcre-devel # Installer des paquets d'environnement dépendants
ADD nginx-1.20.1.tar.gz /root/ # Copier le code source dans le répertoire spécifié ,Et décompresser
ADD gmssl_openssl_1.1_b4.tar.gz /usr/local/
WORKDIR /root/nginx-1.20.1/ # Spécifiez le Répertoire d'exécution pour la commande suivante
RUN sed -in "s/\.openssl\///g" auto/lib/openssl/conf && \
./configure --without-http_gzip_module --with-http_ssl_module --with-http_stub_status_module --with-http_v2_module --with-file-aio --with-openssl="/usr/local/gmssl" --with-cc-opt="-I/usr/local/gmssl/include" --with-ld-opt="-lm" && \
make install && \
mkdir /usr/local/nginx/conf/conf.d && \
mkdir /usr/local/nginx/conf/ssl && \
sed -i '$i \ include /usr/local/nginx/conf/conf.d/*.conf;' /usr/local/nginx/conf/nginx.conf
EXPOSE 80 443 # Déclarer les ports exposés
VOLUME ["/usr/local/nginx/conf/conf.d/","/usr/local/nginx/conf/ssl/"] # Spécifier le point de montage
CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"] #Pour gardernginx Le conteneur ne sort pas ,FermernginxEn coulisses
[root@localhost nginx]# docker build -t gmssl_nginx:v1 . # Construire des étiquettes en utilisant des fichiers dans le répertoire courant gmssl_nginx:v0Miroir de

10. Ressources et téléchargements

1) Version secrète nationale OpenSSLTélécharger:

https://www.gmssl.cn/gmssl/To...

2)NginxTéléchargement de la dernière version:

http://nginx.org/download/ngi...

3) Génération de certificats doubles nationaux :

https://www.gmssl.cn/gmssl/in...

4) Téléchargement du navigateur secret de chianxin :

https://www.gmssl.cn/gmssl/To...

5)Secret nationalNginx Téléchargement de conteneurs :

docker pull keyaas2021/gmssl_nginx:v1.0
版权声明
本文为[Gmssl]所创,转载请带上原文链接,感谢
https://qdmana.com/2021/09/20210914165814425X.html

  1. Non-ASCII character ‘\xe5‘ in file kf1.py on line 4, but no encoding declared; see http://python.or
  2. 手把手教你搭建微信小程序服务器(HTTPS)
  3. sqli-labs-less-18 http头user agent+报错注入
  4. Génération de code nest pour l'outil CLI de nestjs
  5. JS | This
  6. Augmentation des variables
  7. The sinking gs8 raises its flag again. GAC motor's sales are falling endlessly. Is it the car or the people?
  8. Ren Hao's lunch at work today is president Hao wearing a sleeveless coat! Clean and handsome!
  9. Summary of basic knowledge points of JavaScript language (mind map)
  10. The new front-end lady asked: there was a 404 problem refreshing the page in Vue routing history mode
  11. Sqli Labs - less - 18 http header user agent + Error Reporting Injection
  12. Vous apprendrez à construire un serveur d'applet Wechat (https) à la main
  13. Non - ASCII character 'xe5' in file kf1.py on Line 4, but no Encoding declared;Voirhttp://python.or
  14. The new front-end lady asked: there was a 404 problem refreshing the page in Vue routing history mode
  15. En tant que programmeur, quelle est la plus grande tristesse que vous ressentez? L'entrevue d'emploi Java de 2021 dans une grande usine vous demandera:
  16. En tant que programmeur, je n'oublie pas le dernier résumé de mon expérience d'entrevue de stage en Java.
  17. Experts suggested that performers work with certificates, which triggered a collective heated debate. It is meaningless to be accused of repeating the mistakes
  18. The new front-end lady asked: there was a 404 problem refreshing the page in Vue routing history mode
  19. The appearance value of 200000 "Odyssey" is less than 100000, and has become the "sales champion" of household MPV
  20. Les programmeurs Java qui sont entrés dans l'entreprise pendant trois mois ont dû faire face à une correction d'échelle, et les octets ont sauté dans le traitement des questions d'entrevue de JD 360 Netease.
  21. 350 questions d'entrevue Android partage, technologie d'architecture de cache
  22. The space is not vulgar, the configuration is rich, the leather is durable, less worry, and the high configuration is less than 100000!
  23. Vous permet de passer rapidement à travers l'entrevue de saut d'octets et d'aller de l'avant
  24. Résumé des questions d'entrevue technique d'Alibaba Baidu et d'autres grandes usines à la fin de l'année, et analyse de la dernière vraie question d'entrevue Android en 2021
  25. Avec cet ensemble de questions d'entrevue Java, l'ensemble de questions de base d'entrevue de bat,
  26. Avec cet ensemble de questions d'entrevue Java, les notes avancées Java de niveau divin sont systématisées,
  27. Opérateurs arithmétiques et opérateurs de comparaison pour JavaScript, Introduction classique au développement web
  28. Explorer le cadre open source Android - 1. Okhttp Source Analysis
  29. Module management of "free and open source" front-end spa project crudapi background management system based on Vue and Quasar (14)
  30. Partager l'expérience de l'examen et du développement de l'arrière - plan, en s'appuyant sur les questions d'entrevue et les réponses,
  31. Site Web pour partager vos expériences d'entrevue, Tencent Bull vous apprend à écrire votre propre cadre Java!
  32. Notes d'étape Android structurées, sélection de vrais problèmes d'entrevue Android
  33. Dictionnaire distribué: communication de cache limitée par le courant, sujets d'entrevue pour certaines questions courantes dans le développement Java,
  34. Tianci girlfriend Tangyuan attended the event for the second time. Her appearance was comparable to that of a star. The audience shouted that Tianci was blessed!
  35. Introduction au JavaScript chapitre 15 (objets, clairvoyance)
  36. La dernière revue scientifique de l'académicien Luo Liqun: architecture de la boucle neuronale pour stimuler la nouvelle Ia
  37. Basic knowledge of components in Vue "I"
  38. J'a i appris quelques petites choses sur l'entrevue et j'ai acheté un tutoriel en 19998.
  39. Dix minutes pour vous faire passer en revue les points de connaissance que Spring demande souvent, le chemin du retour Jedi d'un programmeur âgé de 35 ans,
  40. Want to know the implementation and application of single instance mode in the front end?
  41. Progressive react source code analysis - Implementation of ref API
  42. Webpack5 learning -- code compression
  43. Front and back end data interaction (V) -- what is Axios?
  44. Knowledge points related to react routing
  45. On demand introduction of react antd + customized theme
  46. GPG management submission signature verification
  47. [babylonjs] babylonjs practice (XII) -- drawing lane lines
  48. After brushing the 12 sliding windows, you can tear the front end by hand
  49. Vue fruit bookkeeping - money.vue component
  50. Propriétés et méthodes des objets Array en javascript!,Pseudo - classes et pseudo - éléments pour CSS
  51. JS contains the function code
  52. Typescript record (I)
  53. Take you to learn more about nginx basic login authentication: generating passwords using OpenSSL
  54. Is componentization obsolete? Introduction to micro front end architecture
  55. Leetcode day 18
  56. Simple code to achieve a, 1W + people see the Mid Autumn Festival blessing
  57. Design pattern -- agent pattern
  58. Vs Code theme recommendation in 2021
  59. Mon expérience réelle dans l'externalisation Android à Huawei, préparation de l'entrevue de développement Android
  60. J'ai les questions et les réponses d'entrevue de développement d'octets de rêve et Tencent double offer, Android