J'utilise un produit d'un fournisseur qui doit utiliser Apache sous Windows.
Nous avons notre propre CA.
À des fins de dénomination:
AppServer - Server2012r2 - Apache 2.4
OldCertsha1 - Server2012r2
NewCertsha2 - Server2012r2
J'ai créé le CSR sur l'AppServer en utilisant les deux commandes ci-dessous.
genrsa –des3 –out name.sub.domain.com.key 2048
req –new –key name.sub.domain.com.key –out name.sub.domain.com.csr
C'est tout va bien
req -noout -text -in name.sub.domain.com.csr
Certificate Request:
Data:
Version: 0 (0x0)
Subject: C=xx, ST=xx, L=xx, O=xx, OU=xx, CN=name.sub.domain.com
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (2048 bit)
Modulus (2048 bit):
e1:ae:5a:e8:26:81:fd:a0:49:f9:a3:c0:77:75:0f:
e1:ae:5a:e8:26:81:fd:a0:49:f9:a3:c0:77:75:0f:
e1:ae:5a:e8:26:81:fd:a0:49:f9:a3:c0:77:75:0f:
e1:ae:5a:e8:26:81:fd:a0:49:f9:a3:c0:77:75:0f:
e1:ae:5a:e8:26:81:fd:a0:49:f9:a3:c0:77:75:0f:
e1:ae:5a:e8:26:81:fd:a0:49:f9:a3:c0:77:75:0f:
e1:ae:5a:e8:26:81:fd:a0:49:f9:a3:c0:77:75:0f:
e1:ae:5a:e8:26:81:fd:a0:49:f9:a3:c0:77:75:0f:
e1:ae:5a:e8:26:81:fd:a0:49:f9:a3:c0:77:75:0f:
e1:ae:5a:e8:26:81:fd:a0:49:f9:a3:c0:77:75:0f:
e1:ae:5a:e8:26:81:fd:a0:49:f9:a3:c0:77:75:0f:
e1:ae:5a:e8:26:81:fd:a0:49:f9:a3:c0:77:75:0f:
e1:ae:5a:e8:26:81:fd:a0:49:f9:a3:c0:77:75:0f:
e1:ae:5a:e8:26:81:fd:a0:49:f9:a3:c0:77:75:0f:
e1:ae:5a:e8:26:81:fd:a0:49:f9:a3:c0:77:75:0f:
e1:ae:5a:e8:26:81:fd:a0:49:f9:a3:c0:77:75:0f:
321:rf
Exponent: 65537 (0x10001)
Attributes:
a0:00
Signature Algorithm: sha1WithRSAEncryption
aa:e4:b7:1d:9a:56:b4:22:e8:a5:1a:e8:43:1d:6f:ef:86:d8:
aa:e4:b7:1d:9a:56:b4:22:e8:a5:1a:e8:43:1d:6f:ef:86:d8:
aa:e4:b7:1d:9a:56:b4:22:e8:a5:1a:e8:43:1d:6f:ef:86:d8:
aa:e4:b7:1d:9a:56:b4:22:e8:a5:1a:e8:43:1d:6f:ef:86:d8:
aa:e4:b7:1d:9a:56:b4:22:e8:a5:1a:e8:43:1d:6f:ef:86:d8:
aa:e4:b7:1d:9a:56:b4:22:e8:a5:1a:e8:43:1d:6f:ef:86:d8:
aa:e4:b7:1d:9a:56:b4:22:e8:a5:1a:e8:43:1d:6f:ef:86:d8:
aa:e4:b7:1d:9a:56:b4:22:e8:a5:1a:e8:43:1d:6f:ef:86:d8:
aa:e4:b7:1d:9a:56:b4:22:e8:a5:1a:e8:43:1d:6f:ef:86:d8:
aa:e4:b7:1d:9a:56:b4:22:e8:a5:1a:e8:43:1d:6f:ef:86:d8:
aa:e4:b7:1d:9a:56:b4:22:e8:a5:1a:e8:43:1d:6f:ef:86:d8:
aa:e4:b7:1d:9a:56:b4:22:e8:a5:1a:e8:43:1d:6f:ef:86:d8:
aa:e4:b7:1d:9a:56:b4:22:e8:a5:1a:e8:43:1d:6f:ef:86:d8:
aa:e4:b7:1d:9a:56:b4:22:e8:a5:1a:e8:43:1d:6f:ef:86:d8:
aa:e4:b7:1d:9a:56:b4:22:e8:a5:1a:e8:43:1d:6f:ef:86:d8:
aa:e4:b7:1d
Puis sur le serveur CA
https: // NewCertsha2 / CertSrv
Demander un certificat
demande de certificat avancée.
Soumettez une demande de certificat en utilisant un fichier CMC ou PKCS # 10 encodé en base 64, ou soumettez une demande de renouvellement en utilisant un fichier PKCS # 7 encodé en base 64.
Ouvrez le CSR sur l'AppServer et collez les informations CSR dans la boîte
-----BEGIN CERTIFICATE REQUEST-----
MIIC0zCCAbsCAQAwgY0xCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhNaWNoaWdhbjER
MA8GA1UEBxMIRGVhcmJvcm4xFjAUBgNVBAoTDWRmY3VmaW5hbmNpYWwxDDAKBgNV
BAsTA2l2cjEyMDAGA1UEAxMpcDAxMWRjMDEtY3JlYzAzLmNlbnRyYWwuZGZjdWZp
bmFuY2lhbC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCej1o0
EEq6UcgB4uhr9bYzA4u8pvxvaCE0JXCqW/8m8D2DBHnJFA2Ui4kEjQlKy1eRTfE0
6lRmowrsJVvvlz0pfsdfghksdkjfgsjskhgfksgfdfmjwHd1D/Bgg60AOPmUBIFl
rgaGcw9CasdkjlhaslkdjhsaklfjhdsfkhsldfjhsdlkjfhdlFOoGVtQdgticLqy
dzpLnAnqwezEnsdflsjhdfksdkfjhwsdkfjhLqKDx1b0z1n7tV4F8DS261dmm8+r
ONz9oYqZfdAFu55gG7sHgOn14P5gP2QIoV/c6CJ2hzbtlifKmZp2A+9F/csXTMIJ
w2sgfQzgv+UPEkH9AgMBAAGgADANBgkqhkiG9w0BAQUFAAOCAQEAMwjmg96iCLnB
uTF4LOoeA788NAt9cYdsWuaUsHptnw70Mj5wWIiaZYgY0hCvWPezRsgOfFrWinN0
y4n0trlyEYXJquBKZbxJZ2yscNMqOJyKl70Ckb83IwpIdhxRYr0JZffEmFlx+2yv
4rhFquS3HZpWtCLopRroQx1v74bYGZHBiz2cM4peowzqGrs8r5NKYYqLRiH00VTs
GEEB+Rihen4tnrn0Y1KLkumrSOrTghIrpQ0j2MZrmvhAIlcZ0W+6bJQcbl0lQ3Hv
STaH9EyIj+47jpMhpfazRPOjSDdFiokjchVDS0Wj/iQJlNDurU7xd+570gduZfcF
M4YoMCwv7Q==
-----END CERTIFICATE REQUEST-----
Serveur Web modèle (10 ans)
Ici, j'ai deux choix
Codé DER ou codé Base 64
Peu importe lequel je sélectionne, il télécharge un fichier .cer et un fichier .p7b
J'ai fait les mêmes étapes sur le serveur OldCertsha1 et j'obtiens les mêmes résultats
Lorsque je modifie le fichier httpd-ssl.conf, ajoutez ce qui suit et redémarrez le service Apache2.4
SSLCertificateFile "E:/Apache24/conf/Certs/name.sub.domain.com.crt"
SSLCertificateKeyFile "E:/Apache24/conf/Certs/name.sub.domain.com.key"
J'obtiens les erreurs suivantes, différentes erreurs pour différents types parmi les choix ci-dessus (encodés en DER ou en Base 64):
Codé DER:
[Wed Jan 11 08:37:44.471616 2017] [proxy:error] [pid 4804:tid 1780] (OS 10061)No connection could be made because the target machine actively refused it. : AH00957: HTTP: attempt to connect to 127.0.0.1:8080 (127.0.0.1) failed
[Wed Jan 11 08:37:44.471616 2017] [proxy:error] [pid 4804:tid 1780] AH00959: ap_proxy_connect_backend disabling worker for (127.0.0.1) for 60s
[Wed Jan 11 08:37:44.471616 2017] [proxy_http:error] [pid 4804:tid 1780] [client ::1:61346] AH01114: HTTP: failed to make connection to backend: 127.0.0.1, referer: https://name.sub.domain.com/knoahsoft/faces/client/index1.jspx?_afPfm=5600447c
[Wed Jan 11 13:13:56.437605 2017] [ssl:emerg] [pid 20860:tid 540] AH02562: Failed to configure certificate name.sub.domain.com:443:0 (with chain), check E:/Apache24/conf/Certs/name.sub.domain.com.cer
[Wed Jan 11 13:13:56.437605 2017] [ssl:emerg] [pid 20860:tid 540] SSL Library Error: error:0906D06C:PEM routines:PEM_read_bio:no start line (Expecting: TRUSTED CERTIFICATE) -- Bad file contents or format - or even just a forgotten SSLCertificateKeyFile?
[Wed Jan 11 13:13:56.437605 2017] [ssl:emerg] [pid 20860:tid 540] SSL Library Error: error:140DC009:SSL routines:SSL_CTX_use_certificate_chain_file:PEM lib
[Wed Jan 11 13:14:14.375459 2017] [ssl:emerg] [pid 23800:tid 544] AH02562: Failed to configure certificate name.sub.domain.com:443:0 (with chain), check E:/Apache24/conf/Certs/name.sub.domain.com.cer
[Wed Jan 11 13:14:14.375459 2017] [ssl:emerg] [pid 23800:tid 544] SSL Library Error: error:0906D06C:PEM routines:PEM_read_bio:no start line (Expecting: TRUSTED CERTIFICATE) -- Bad file contents or format - or even just a forgotten SSLCertificateKeyFile?
[Wed Jan 11 13:14:14.375459 2017] [ssl:emerg] [pid 23800:tid 544] SSL Library Error: error:140DC009:SSL routines:SSL_CTX_use_certificate_chain_file:PEM lib
Base 64 encodée:
[Wed Jan 11 14:35:15.024474 2017] [ssl:emerg] [pid 141796:tid 508] AH02577: Init: SSLPassPhraseDialog builtin is not supported on Win32 (key file E:/Apache24/conf/Certs/name.sub.domain.com.key)
[Wed Jan 11 14:35:15.024474 2017] [ssl:emerg] [pid 141796:tid 508] AH02564: Failed to configure encrypted (?) private key name.sub.domain.com:443:0, check E:/Apache24/conf/Certs/name.sub.domain.com.key
[Wed Jan 11 14:35:15.024474 2017] [ssl:emerg] [pid 141796:tid 508] SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Wed Jan 11 14:35:15.024474 2017] [ssl:emerg] [pid 141796:tid 508] SSL Library Error: error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error
[Wed Jan 11 14:35:15.024474 2017] [ssl:emerg] [pid 141796:tid 508] SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Wed Jan 11 14:35:15.024474 2017] [ssl:emerg] [pid 141796:tid 508] SSL Library Error: error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error (Type=RSA)
[Wed Jan 11 14:35:15.024474 2017] [ssl:emerg] [pid 141796:tid 508] SSL Library Error: error:04093004:rsa routines:OLD_RSA_PRIV_DECODE:RSA lib
[Wed Jan 11 14:35:15.024474 2017] [ssl:emerg] [pid 141796:tid 508] SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Wed Jan 11 14:35:15.024474 2017] [ssl:emerg] [pid 141796:tid 508] SSL Library Error: error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error (Type=PKCS8_PRIV_KEY_INFO)
[Wed Jan 11 14:36:12.355215 2017] [ssl:emerg] [pid 145468:tid 512] AH02577: Init: SSLPassPhraseDialog builtin is not supported on Win32 (key file E:/Apache24/conf/Certs/name.sub.domain.com.key)
[Wed Jan 11 14:36:12.355215 2017] [ssl:emerg] [pid 145468:tid 512] AH02564: Failed to configure encrypted (?) private key name.sub.domain.com:443:0, check E:/Apache24/conf/Certs/name.sub.domain.com.key
[Wed Jan 11 14:36:12.355215 2017] [ssl:emerg] [pid 145468:tid 512] SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Wed Jan 11 14:36:12.355215 2017] [ssl:emerg] [pid 145468:tid 512] SSL Library Error: error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error
[Wed Jan 11 14:36:12.355215 2017] [ssl:emerg] [pid 145468:tid 512] SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Wed Jan 11 14:36:12.355215 2017] [ssl:emerg] [pid 145468:tid 512] SSL Library Error: error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error (Type=RSA)
[Wed Jan 11 14:36:12.355215 2017] [ssl:emerg] [pid 145468:tid 512] SSL Library Error: error:04093004:rsa routines:OLD_RSA_PRIV_DECODE:RSA lib
[Wed Jan 11 14:36:12.355215 2017] [ssl:emerg] [pid 145468:tid 512] SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Wed Jan 11 14:36:12.355215 2017] [ssl:emerg] [pid 145468:tid 512] SSL Library Error: error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error (Type=PKCS8_PRIV_KEY_INFO)
J'ai lu quelques articles disant que les fichiers CER et CRT sont interchangeables, il suffit de les renommer.
Si je renomme le cer en crt et mets à jour httpd-ssl.conf, j'obtiens beaucoup d'erreurs dans les journaux environ 100 d'entre eux:
[Wed Jan 11 14:06:43.943865 2017] [autoindex:error] [pid 70976:tid 1784] [client 10.1.41.110:50933] AH01276: Cannot serve directory E:/KnoahSoft/EmpPhotos/: No matching DirectoryIndex (index.html) found, and server-generated directory index forbidden by Options directive
Maintenant, le vendeur remet le fichier server.crt, server.cre, server.csr et server.key qu'ils ont chargé lorsque la boîte a été livrée, si je change les deux lignes du httpd-ssl.conf en ce qu'elles avaient, il redémarrera bien et tout fonctionne mais je reçois l'avertissement SSL
SSLCertificateFile "E:/Apache24/conf/Certs/server.crt"
SSLCertificateKeyFile "E:/Apache24/conf/Certs/server.key"
Quelqu'un peut-il me dire ce que je fais peut-être mal, si vous avez besoin de voir les configurations, demandez simplement que je les mette en place.
Mise à jour:
J'ai pris leur server.csr ouvert la page CertSrv sur OldCertsha1 et NewCertsha2, lorsque j'ai utilisé le modèle Web Server Web Server (10 ans), j'ai eu une erreur:
Your Request Id is 118. The disposition message is "Denied by Policy Module The certificate validity period will be shorter than the WebServer(10Years) Certificate Template specifies, because the template validity period is longer than the maximum certificate validity period allowed by the CA. Consider renewing the CA certificate, reducing the template validity period, or increasing the registry validity period. ".
Alors j'ai essayé la même erreur du serveur Web (5 ans), puis j'ai fatigué le (serveur Web) n'a pas obtenu d'erreur et télécharger les fichiers CER et P7B encodés DER ou Base 64.
Changement du server.cer encodé en Base 64 en server.crt, renommé l'ancien server.crt en server1.crt et redémarré apache,
Aucune erreur n'a fonctionné parfaitement,
Pourquoi? Qu'est-ce que j'ai fait de mal depuis le début?
C'était la première fois que je travaillais avec SSL et apache et que j'utilisais ma propre autorité de certification, qu'est-ce que j'ai fait de mal? La seule chose à laquelle je peux penser, c'est que j'ai utilisé le modèle de serveur Web (10 ans), mais cela n'a vraiment aucun sens pour moi.
Si je regarde les deux fichiers crt, les deux ont la même information
Le certificat est destiné aux fins suivantes
- Assurez l'identité d'un ordinateur distant
Délivré à: name.sub.domain.com
Publié par: OldCertsha1
La seule vraie différence par rapport à l'onglet Général est la durée de validité, le cst de mon csr est valable 10 ans, le crt de leur csr est valable 2 ans.
Je vais approfondir les autres parties du SSL et voir si je peux trouver des différences demain.
la source
Réponses:
Tout d'abord, Apache utilisera toujours base64, les extensions de fichiers ne sont pas pertinentes (pem, crt, cer).
Deuxièmement, vous ne pouvez pas émettre un certificat plus longtemps que l'autorité de certification.
10 ans, c'est un peu trop, je ne serais pas surpris de voir des navigateurs commencer à les marquer comme non sécurisés.
Si vous disposez toujours des certificats émis, vous pouvez les valider avec openssl.
/security//a/56699/84379
la source
Base 64 partout, s'il vous plaît :-).
Votre ligne httpd.conf
spécifie un fichier de clé crypté. Apache sous Windows ne prend pas en charge la fourniture de la phrase secrète de déchiffrement au moment de l'exécution ... Voir la ligne du journal des erreurs:
Vous devrez pré-décrypter votre fichier de clé:
fournir la phrase secrète lorsqu'on lui a demandé. Corrigez httpd.conf et redémarrez Apache.
la source