diff --git a/nodeconductor/structure/serializers.py b/nodeconductor/structure/serializers.py
index <HASH>..<HASH> 100644
--- a/nodeconductor/structure/serializers.py
+++ b/nodeconductor/structure/serializers.py
@@ -233,6 +233,14 @@ class ProjectSerializer(core_serializers.RestrictedSerializerMixin,
         return queryset.select_related('customer').only(*related_fields)\
             .prefetch_related('quotas', 'certifications')
 
+    def get_fields(self):
+        fields = super(ProjectSerializer, self).get_fields()
+
+        if self.instance:
+            fields['certifications'].read_only = True
+
+        return fields
+
     def create(self, validated_data):
         certifications = validated_data.pop('certifications', [])
         project = super(ProjectSerializer, self).create(validated_data)
Mark certifications as readonly on project update

It is not allowed to update certifications on direct project update
through PUT or POST request. /update_certifications method is used for
that purpose.